參考http://ambari.apache.org/1.2.2/installing-hadoop-using-ambari/
準備工作
1 理解組件
Ambari 支持的Hadoop組件主要分爲3層:
- Core Hadoop: Apache Hadoop基礎組件.
- Hadoop Distributed File System (HDFS): 設計用來運行 MapReduce 引擎的一個文件系統. 提供在分佈式環境的數據訪問.
- MapReduce: MapReduce 編程框架處理數據.
- Essential Hadoop: :與 Core Hadoop 一起工作的組件.
- Apache Pig 語言,被編譯成MapReduce 程序.
- Apache Hive: SQL-like 查詢語言,能被編譯成MapReduce 程序.
- Apache HCatalog: 元數據抽象層,用來隔離用戶與 數據。 數據如何,在哪裏被存儲,用戶和腳本無需關心
- WebHCat: 爲 HCatalog 和相關Hadoop組件提供REST-like APIs ,以前叫 Templeton.
- Apache HBase: 分佈式列數據庫,提供隨機訪問和操作 HDFS的大塊數據能力
- Apache ZooKeeper: HBase 依賴於zk.
- Hadoop Support: 監控 Hadoop 的安裝 和 在你的計算環境連接到 Hadoop
- Apache Oozie: 基於服務器的工作流引擎,優化正在運行Hadoop jobs的工作流.
- Apache Sqoop: 在Hadoop和外部結構數據之間遷移數據. 可以被Oozie 工作流集成
- Ganglia: 性能監控系統
- Nagios: 監控系統服務和網絡
安裝Ambari 必須安裝HDFS,其他可選。
2 軟件需求
系統要求:Linux 64位
軟件要求 :yum rpm scp curl wget pdsh, 唯一需要安裝的是 pdsh,搭建好自建倉庫後運行下面命令即可
yum install pdsh
數據庫:Ambari/Hive /HCatalog 都需要關係數據庫的支持。
3 部署方式
雖然可以把所有組件裝在一臺機器上,但通常建議3臺,1 master 2 slave。
4 信息收集
所有主機需要配置域名 Ambari 安裝嚮導不支持 IP 地址
5 其他
ssh免登錄
Ambari Server 在agent端安裝軟件 需要ssh 免登錄
時鐘同步
Disable SELinux
Disable iptables
Disable PackageKit
打開/etc/yum/pluginconf.d/refresh-packagekit.conf 寫入 enable=0
Disable THP
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
如果Hive , HCatalog 使用MySQL作爲 數據庫,需要安裝jdbc驅動
yum install mysql-connector-java*
開始安裝
安裝開始前,強烈建議搭建一個私有yum 倉庫,具體地址請看hadoop-day-2: 自建hadoop-yum-倉庫。
安裝repo,這裏不建議使用hortonworks的repo,需要翻牆,建議使用自建倉庫。
cd /etc/yum.repos.d/
wget http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.2/ambari.repo
# 根據角色安裝
yum install ambari-server
yum install ambari-agent
配置server
ambari-server setup
Customize user account for ambari-server daemon [y/n] (n)? n
進程配置按n 默認即可
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
選2 並同意Oracle JDK license 安裝JDK,會自動安裝jdk
Enter advanced database configuration [y/n] (n)?
按 n 使用默認數據庫配置。
這裏的ambari數據庫直接裝在本機的PostgreSQL上了,用戶名和密碼 ambari-server/bigdata ,按 y 可以自定義裝在其他機器的其他數據庫,如 測試的 MySQL
Configuring database...
Default properties detected. Using built-in database.
Configuring ambari database...
Checking PostgreSQL...
Running initdb: This may take upto a minute.
Initializing database: [ OK ]
About to start PostgreSQL
Configuring local database...
Restarting PostgreSQL
Extracting system views...
......ambari-admin-2.1.2.377.jar
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
至此安裝完成
啓動server
ambari-server start
配置節點
安裝jdbc驅動
yum install mysql-connector-java*
數據庫配置
在測試的 MySQL 服務器上 新建2個庫 Hive Oozie
安裝,配置,部署集羣
瀏覽器打開http://server_hostname:8080, 使用admin/admin.登錄
1 點擊 Launch Install Wizard
2 輸入集羣名稱
bigdatatest
3 選擇2.3,並點擊下方的 Advanced Repository Options
3 只勾選使用的操作系統類型,下面倉庫的地址也要換成自己搭建的yum源,修改完成後,點Next
4 輸入集羣節點的域名,並把免登錄私鑰 上傳上來,然後下一步
5 服務器會在每個節點上安裝agent, 知道都變成success 點擊Next
6 選擇需要安裝的組件,從這裏安裝這裏面必須選安裝zookeeper,沒法使用現有的
7 Hive 和 Oozie 需要配置數據庫,直接使用測試環境現有Mysql,需要提前安裝好 jdbc dirver。
8 確認後,會給出組件彙總的列表,沒問題後點deploy
9 然後坐等安裝完畢
一些bug處理
如果安裝階段就出現問題,請檢查自建倉庫
安裝完成後,Oozie無法啓動
Error: Specified key was too long; max key length is 767 bytes {stmnt 484436112 CREATE TABLE BUNDLE_ACTIONS (bundle_action_id VARCHAR(255) NOT NULL, bundle_id VARCHAR(255), coord_id VARCHAR(255), coord_name VARCHAR(255), critical INTEGER, last_modified_time DATETIME, pending INTEGER, status VARCHAR(255), PRIMARY KEY (bundle_action_id)) ENGINE = innodb} [code=1071, state=42000]
測試Mysql 字符集是 utf8mb4,修改後正常啓動
ALTER DATABASE oozie character set latin1;
ALTER DATABASE hive character set latin1;
Hive 無法啓動
Initialization script hive-schema-1.2.0.mysql.sql
Error: Duplicate key name ‘PCS_STATS_IDX’ (state=42000,code=1061)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
https://svn.apache.org/repos/asf/hive/trunk/metastore/scripts/upgrade/mysql/hive-schema-1.2.0.mysql.sql
導入mysql 後啓動成功