大數據平臺安裝部署文檔
Ambari2.4-HDP2.5
目錄
2.10關閉yum自動更新(minimal安裝不需要此步驟)8
1 集羣配置說明
安裝前保證已安裝操作系統,最好是使用Centos操作系統,操作系統的安裝部署可以參考Centos安裝部署文檔(Centos6.5)
2 集羣配置
本文使用的Ambari2.1和HDP2.3部署,如果想使用更新的版本,可以參考下面的網址部署
選擇進入相應的版本後,選擇進入“Ambari AutomatedInstall”,參考該文檔進行部署
2.1 集羣組成
本次部署總共有6個節點,每個節點都使用centos最小化安裝(mini),如下所示:
主機ip |
主機名 |
操作系統 |
CPU |
內存 |
作用 |
192.1.18.239 |
ambari.hdp.ap |
Centos6.6 |
Intel G640 雙核 2.8GHz |
2g |
部署Ambari Server |
192.1.18.240 |
hdp1.hdp.ap |
Centos6.6 |
Intel i5-3470 雙核四線程 3.2GHz |
4g |
hdp部署節點1 |
192.1.18.241 |
hdp2.hdp.ap |
Centos6.6 |
Intel i5-3470 雙核四線程 3.2GHz |
4g |
hdp部署節點2 |
192.1.18.242 |
hdp3.hdp.ap |
Centos6.6 |
Intel i5-3470 雙核四線程 3.2GHz |
4g |
hdp部署節點3 |
192.1.18.243 |
hdp4.hdp.ap |
Centos6.6 |
Intel i5-3470 雙核四線程 3.2GHz |
4g |
hdp部署節點4 |
192.1.18.244 |
hdp5.hdp.ap |
Centos6.6 |
Intel G630 雙核 2.7GHz |
2g |
hdp部署節點5 |
2.2 基礎軟件要求
集羣每個節點需要安裝scp、curl(centosmini已安裝)、unzip、、tar(centos mini已安裝)、wget和python(2.6以上,centos 6.6默認就是 2.6 的),每個節點執行如下命令安裝(需要Internet連接)
yum install openssh-clients -y
yum install unzip -y
yum install wget –y
2.3 修改主機名並設置DNS解析
按照上述表中的主機名在對應的機器上修改它們的hostname,在/etc/sysconfig/network中修改hostname項,修改完後重啓生效,以ambari.hdp.ap爲例,修改/etc/sysconfig/network內容如下所示:
然後修改機器的/etc/hosts文件,將每個機器的hostname和ip對應起來,將修改後的/etc/hosts文件複製到集羣中的每臺機器,操作如下所示(按照實際情況填寫):
將hosts文件拷貝到其他五個節點
2.4 配置ssh無密碼登錄
因爲在ambari和hdp部署過程中,ambari和hdp部署的節點都有可能互相訪問,所以建議六個節點中的每個節點之間都可以ssh無密碼登錄,包括它們自己登錄到自己。
在ambari.hdp.ap機器上執行如下操作,首先查看該用戶根目錄下的.ssh文件夾中是否有id_rsa文件,如果沒有執行ssh-keygen命令,一路回車,然後查看生成的文件,爲了避免之後的麻煩,建議將該目錄下所有文件的權限修改成600,本文檔部署在ambari機器上的操作如下所示,其他機器類似:
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
在ambari.hdp.ap機器上執行如下將命令
for host in hdp{1,2,3,4,5}.hdp.ap;do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在hdp1機器上執行如下將命令
for host in ambari.hdp.ap hdp{2,3,4,5}.hdp.ap;do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在hdp2機器上執行如下將命令
for host in ambari.hdp.ap hdp{1,3,4,5}.hdp.ap;do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在hdp3機器上執行如下將命令
for host in ambari.hdp.ap hdp{1,2,4,5}.hdp.ap;do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在hdp4機器上執行如下將命令
for host in ambari.hdp.ap hdp{1,2,3,5}.hdp.ap;do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
在hdp5機器上執行如下將命令
for host in ambari.hdp.ap hdp{1,2,3,4}.hdp.ap;do echo $host; ssh-copy-id -i /root/.ssh/id_rsa root@$host;done
2.5 配置ntp服務
時區檢查:
less /etc/localtime看最後一行是否是CST-8
如果不是,用命令cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 修改之。
因爲hdp中有服務需要集羣的時間同步,所以集羣中的每一個機器需要安裝啓動ntp服務保證集羣時間的一致,安裝啓動如下所示:
for host in ambari.hdp.ap hdp{1,2,3,4,5}.hdp.ap;do ssh root@$host yum install ntp -y; ssh root@$host /etc/init.d/ntpd start; done
2.6 關閉防火牆服務
因爲集羣中的線程之間需要互相通信,所以需要合理配置防火牆,最簡單的方式是直接關閉防火牆。操作如下所示:
for host in ambari.hdp.ap hdp{1,2,3,4,5}.hdp.ap;do ssh root@$host /etc/init.d/iptables stop; ssh root@$host chkconfig iptables off; done
或者:
service iptables stop
service ip6tables stop
設置成始終保持關閉:
chkconfig iptables off
chkconfig ip6tables off
2.7 配置selinux和umask
爲了避免引起不必要的麻煩,關閉集羣節點上的selinux服務,然後重啓,操作如下所示:
編輯/etc/sysconfig/selinux,設置
SELINUX=disabled
如果機器安裝了PackageKit,在中將其關閉,操作如下:
確保集羣中節點的umask值爲0022,操作如下:
umask
2.8 關閉THP(推薦)
在hdp1.hdp.ap、hdp2.hdp.ap、hdp3.hdp.ap、hdp4.hdp.ap、hdp5.hdp.ap機器上均執行如下命令
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
2.9 修改系統Linux值(推薦)
使用ulimit -a來查看所有限制值
ulimit -a
其中“open files (-n) 1024”,是Linux操作系統對一個進程打開的文件句柄數量的限制
修改/etc/security/limits.conf,添加如下
hadoop - nofile 32768
hadoop - nproc 32000
重啓生效
2.10關閉yum自動更新(minimal安裝不需要此步驟)
service yum-updatesd stop #關閉系統自動更新
chkconfig yum-updatesd off #禁止開啓啓動
2.11更新openssl
CentOS 6.5自帶的open ssl 有bug, 需要更新到新版本才能開始安裝ambari.
查看安裝的openssl包
rpm -qa |grep openssl
安裝:
yuminstall /tmp/soft /openssl-1.0.1e-16.el6_5.x86_64.rpm -y
2.12配置yum repo
關閉yum的fastestmirorplugin
cd/etc/yum/pluginconf.d
vifastestmirror.conf
enabled=1 改爲 enabled=0
3 部署軟件
3.1 JDK下載安裝部署
在ambari服務器上創建目錄/usr/java
mkdir -p /usr/java
將下載的jdk-7u71-linux-x64.tar.gz(推薦使用jdk1.7)上傳至/usr/java目錄,在ambari節點上執行如下命令:
cd /usr/java/
tar -xzvf jdk-7u71-linux-x64.tar.gz
rm -rf jdk-7u71-linux-x64.tar.gz
編輯/etc/profile,添加
export JAVA_HOME=/usr/java/jdk1.7.0_71
export PATH=$JAVA_HOME/bin:$PATH
然後執行source /etc/profile,使用java -version驗證之,其他五個節點配置相同
3.2 Ambari和HDP下載配置
本文檔部署所用的軟件爲:
1. ambari-2.1.1-centos6.tar.gz,下載地址爲:
http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.1/ambari-2.1.1-centos6.tar.gz
http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.0/ambari-2.2.1.0-centos6.tar.gz
http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ambari-2.2.2.0-centos6.tar.gz
2. HDP-2.3.0.0-centos6-rpm.tar.gz,下載地址爲:
http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0/HDP-2.3.0.0-centos6-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.2.0/HDP-2.4.2.0-centos6-rpm.tar.gz
3. HDP-UTILS-1.1.0.20-centos6.tar.gz,下載地址爲:
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz。
手動下載所需的上述軟件;將下載的ambari-2.1.1-centos6.tar.gz軟件放到部署某一臺的機器的/var/www/html/ambari目錄下, HDP-2.3.0.0-centos6-rpm.tar.gz、HDP-UTILS-1.1.0.20-centos6.tar.gz軟件放到該臺的機器的/var/www/html/目錄下(該機器必須先安裝httpd服務,並且啓動httpd服務),然後解壓,使用如下命令開啓httpd服務:
cd /var/www/html
service httpd start
chkconfig httpd on 把httpd設置爲自動啓動
在該機器上添加/etc/yum.repos.d/ambari.repo文件,它的內容如下所示,其中的ip地址要換成存放ambari、HDP軟件那臺機器的ip:
vi /etc/yum.repos.d/ambari.repo
注:其中2.x爲版本的縮寫,根據自己版本補充完整
#VERSION_NUMBER=2.4.0.1-460
[Updates-ambari-2.4.0.1]
name=ambari-2.4.0.1 - Updates
#baseurl=http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0
baseurl=http://192.168.17.136/ambari/AMBARI-2.4.0.1/centos6/2.4.0.1-1
gpgcheck=1
#gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
gpgkey=http://192.1.18.239/ambari/AMBARI-2.4.0.1/centos6/2.4.0.1-1/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
然後用/var/www/html/AMBARI-2.2.2.0 下面有個setup_repo.sh ,可以創建ambari.repo
配置HDP.repo文件:
vi /etc/yum.repos.d/HDP.repo
#VERSION_NUMBER=2.5.0.0-258
[HDP-2.5.0.0]
name=HDP Version -HDP-2.5.0.0
#baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.2.0
baseurl=http://192.1.18.239/HDP/centos6
gpgcheck=1
#gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
gpgkey=http://192.168.17.136/HDP/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
vi /etc/yum.repos.d/HDP-UTILS.repo
[HDP-UTILS-1.1.0.21]
name=HDPUtils Version - HDP-UTILS-1.1.0.21
#baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6
baseurl=http://192.168.17.136/HDP-UTILS-1.1.0.21/repos/centos6
gpgcheck=1
#gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
gpgkey=http://192.168.17.136/HDP-UTILS-1.1.0.21/repos/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
3.3 Ambari安裝部署
在安裝ambari的機器上執行yum install ambari-server命令,操作如下所示:
yum install ambari-server
沒有報錯的話,ambari-server安裝成功,接下來執行
ambari-server setup -j /usr/java/jdk1.7.0_80
啓動-j後面的操作指定jdk安裝的位置,操作如下:
接下來用ambari-server start命令啓動ambari-server,用ambari-server stop命令關閉ambari-server,用ambari-server status命令查看ambari-server的啓動狀態,操作如下:
3.4 HDP安裝部署
修改c:\windows\system32\drivers\etc\hosts,添加如下
192.1.18.239 ambari.hdp.ap
192.1.18.240 hdp1.hdp.ap
192.1.18.241 hdp2.hdp.ap
192.1.18.242 hdp3.hdp.ap
192.1.18.243 hdp4.hdp.ap
192.1.18.244 hdp5.hdp.ap
Ambari-server啓動成功後,可以通過http://ambari.hdp.ap:8080訪問,用戶名和密碼都是admin,訪問界面如下所示:
用admin登錄,出現如下界面。
點擊“Launch Install Wizard”,接下來可以安裝hdp,首先命名集羣,選擇下一步,操作如下所示:
然後選擇安裝的hdp的版本,本次部署用HDP2.3,所以選擇HDP2.3,點開下面的“Advanced Repository Options”,選擇操作系統對應的選項,本次部署選擇redhat6,修改其中“HDP-2.3”和“HDP-UTILS-1.1.0.20”指向的地址,修改成/etc/yum.repo.d/hdp.repo中它們指向的地址,本次部署“HDP-2.3”指向“http://192.168.90.62/HDP/centos6/2.x/updates/2.3.0.0”,“HDP-UTILS-1.1.0.20”指向“http://192.168.90.62/HDP-UTILS-1.1.0.20/repos/centos6”,然後點擊下一步:
然後在“Target Hosts”方框中填寫部署hdp的集羣,本次部署填寫如下;還需要指定部署ambari機器的“SSH Private Key”,點擊“選擇文件”按鈕,找到部署ambari.hdp.ap機器上的“~/.ssh/id_rsa”文件,或者將該文件的內容複製到對應的方框中,然後點擊“Register and Confirm”按鈕:
接下來會進行集羣的註冊和驗證,出現下述畫面代表成功,可以點擊“Status”欄中的“Success”或者“Failed”查看日誌,如下圖所示:
接下來下一步,顯示“選擇服務”界面,默認是全選,可以根據自己機器的配置和需要選擇服務,這裏我沒有安裝如下服務,以後還可以安裝:
Falcon——Data management and processing platform
Storm——Apache Hadoop Stream processing framework
Flume——A distributed service for collecting, aggregating, and moving largeamounts of streaming data into HDFS
Kafka——A high-throughput distributed messaging system
Knox——Provides a single point of authentication and access for ApacheHadoop services in a cluster
然後點擊下一步,接下來顯示的是“指定主節點”的界面,這個根據實際情況在下拉菜單中選擇,儘可能均勻分配,如下圖所示:
各節點的配置樣例(實際配置情況以自己實際需要爲準):
樣例中hdp1是NameNode,hdp2是SecondNameNode,hdp3-6是datanode。
咱們的carposerver可以部署到second master上。
然後點擊下一步,接下來顯示的是“指定從節點和客戶端”的界面,這個根據實際情況選擇服務,儘可能均勻分配,如下圖所示:
然後點擊下一步,接下來顯示的是“配置服務選項”的界面,這個根據機器性能配置,如下圖所示:
其中旁邊顯示紅色小圓圈帶數字的表示此項服務中的某些項必須配置,其中的“Hive”、“Oozie”和“Nagios”項中需要設置密碼和email,點開進行配置,操作如下:
然後點擊下一步,接下來顯示的是“複查”界面,顯示了集羣配置服務的情況,沒有問題,點擊“部署”按鈕,如下圖所示:
接下來進入“安裝、啓動、測試”界面,如下圖所示:
在“安裝、啓動、測試”過程中,隨時可以點擊“Message”欄中的項查看日誌,日誌顯示了部署的進展情況,如下圖所示:
下圖截取了幾張部署過程中的圖,僅供參考:
出現下面畫面表示“安裝、啓動、測試”成功:
然後點擊下一步,顯示的是“部署情況”界面,如下圖所示:
然後點擊“完成”按鈕,進入ambari管理界面,如下圖所示:
4 部署注意事項
4.1 重啓注意檢查防火牆
每次機器重啓後,檢查下防火牆的狀態,如果防火牆開着,一定要執行關閉命令,操作如下:
查看某個服務狀態的API(storm):
curl -u admin:admin -H"X-Requested-By: ambari" -X GEThttp://ambari.hdp.ap:8080/api/v1/clusters/ClusterName/services/STORM
停止某個服務的API(storm):
curl -u admin:admin -H"X-Requested-By: ambari" -X PUT -d'{"RequestInfo":{"context":"StopService"},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}'http://ambari.hdp.ap:8080/api/v1/clusters/ClusterName/services/STORM
刪除某個服務的API:
curl -u admin:admin -H"X-Requested-By: ambari" -X DELETE http://ambari.hdp.ap:8080/api/v1/clusters/ClusterName/services/STORM