Apache Ambari 部署

參考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 後啓動成功

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章