【流水】使用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