【流水】使用Ambari搭建Hadoop平台
- 2019 年 10 月 6 日
- 筆記
手動安裝Hadoop的朋友都知道,這是一個痛苦的過程。一天時間,你能夠把上千台機器全部安裝完成么?包括Hive、Spark、Hbase等。
這當然要藉助工具,國內用戶安裝Hadoop套件,習慣使用CM安裝CDH,但這次,我們想嘗試一下Hortonworks的Ambari來安裝HDP。由於沒有免費版收費版的區別,整個使用過程是非常流暢的。因為機器多且網絡差的原因,我們使用本地鏡像的方式進行安裝。
以centos7為例,以下是安裝過程~
準備階段
搭建鏡像
下載以下文件,並上傳到某台服務器上,然後解壓。
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0/ambari.repo http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.1.0/hdp.repo http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.0.1.0/hdp.gpl.repo http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0/ambari-2.7.1.0-centos7.tar.gz http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.1.0/HDP-3.0.1.0-centos7-rpm.tar.gz http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.0.1.0/HDP-GPL-3.0.1.0-centos7-gpl.tar.gz
解壓,並啟動一個簡單的http服務器,搭建本地鏡像。
tar xvf ambari-2.7.1.0-centos7.tar.gz tar xvf HDP-3.0.1.0-centos7-rpm.tar.gz tar xvf HDP-UTILS-1.1.0.22-centos7.tar.gz tar xvf HDP-GPL-3.0.1.0-centos7-gpl.tar.gznohup python -m SimpleHTTPServer 8000 &
至此,訪問 http://ip:8000就可以訪問我們的鏡像了。
免密登陸
這個是每種安裝都需要的
ssh-keygen -t rsa
然後將~/.ssh/id_rsa.pub
文件追加到每台機器的信任列表
cat >> /root/.ssh/authorized_keys
可以使用ansible等去完成這個體力活。
將下載的repo加入到源
修改裏面的ip地址和路徑,將地址指向我們的本地鏡像。如
cat /etc/yum.repos.d/ambari.repo#VERSION_NUMBER=2.7.1.0-169 [ambari-2.7.1.0] #json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json name=ambari Version - ambari-2.7.1.0 baseurl=http://10.67.2.148:8000/ambari/centos7/2.7.1.0-169 gpgcheck=1 gpgkey=http://10.67.2.148:8000/ambari/centos7/2.7.1.0-169/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
配置hosts
當然也可以直接使用DNS;或者ip,但會顯得亂
類似這種
10.81.28.181 bigdata001.dm.ops.pro.dc 10.66.224.130 bigdata002.dm.ops.pro.dc 10.80.86.57 bigdata003.dm.ops.pro.dc 10.25.128.158 bigdata004.dm.ops.pro.dc 10.67.2.148 bigdata005.dm.ops.pro.dc
安裝ambari-server
yum install ambari-server -y ambari-server setup
安裝基礎依賴
安裝jdk,每個節點執行
yum install java-1.8.0-openjdk -y
安裝數據庫,當然也可以用現有的
yum install mariadb-server -y systemctl start mariadb mysql_secure_installation
導入腳本到數據庫
mysql -h localhost -uroot -p ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
安裝jdbc驅動(驅動提前下載到/usr/share/java)
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
給予MySQL外網授權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxx' WITH GRANT OPTION; flush privileges;
啟動ambari-server
ambari-server start
在線配置
訪問http://ip:8080端口,即可進入ambari後台
給集群起個名字

選擇版本並設置本地鏡像

把機器加入到集群中
同時,配置自動登錄的私鑰信息

選擇集群安裝的軟件

涉及服務拓撲
將不同的服務根據需要安裝在不同的機器上。

設置其他主從信息

設置一些管理賬號

配置數據庫連接信息

指定一些項目的參數

設置系統用戶

開始安裝
由於採用的是本地鏡像,無需下載,所以速度非常快。

安裝完成
安裝完成後即可進入主界面

清理
SmartSense服務可能會啟動失敗,根據文檔需要提供一個ID,我們可以通過調用接口刪除這個模塊。
curl -u admin:admin -i -H 'X-Requested-By: ambari' -X PUT -d '{"RequestInfo": {"context" :"Stop SmartSense via REST"}, "Body": {"ServiceInfo": {"state": "INSTALLED"}}}' http://10.67.2.148:8080/api/v1/clusters/big_zeus/services/SMARTSENSEcurl -u admin:admin -i -H 'X-Requested-By: ambari' -X POST -d '{"RequestInfo": {"context" :"Uninstall SmartSense via REST", "command":"Uninstall"}, "Requests/resource_filters":[{"hosts":"comma separated host names", "service_name":"SMARTSENSE", "component_name":"HST_AGENT"}]}' http://10.67.2.148:8080/api/v1/clusters/big_zeus/requestscurl -u admin:admin -H 'X-Requested-By: ambari' -X DELETE http://10.67.2.148:8080/api/v1/clusters/big_zeus/services/SMARTSENSE