Ambari安裝
1 Ambari簡(jiǎn)介
Apache Ambari項(xiàng)目的目的是通過(guò)開(kāi)發(fā)軟件來(lái)配置询刹、監(jiān)控和管理hadoop集群,以使hadoop的管理更加簡(jiǎn)單沦泌。同時(shí),ambari也提供了一個(gè)基于它自身RESTful接口實(shí)現(xiàn)的直觀烙常、簡(jiǎn)單易用的web管理界面荆永。
Ambari允許系統(tǒng)管理員進(jìn)行以下操作:
1.提供安裝管理hadoop集群;
2.監(jiān)控一個(gè)hadoop集群;
3.擴(kuò)展ambari管理自定義服務(wù)功能.
2 集群所需基礎(chǔ)條件
2.1 操作系統(tǒng)的需求
?Red Hat Enterprise Linux (RHEL) 版本5.x 或者 6.x (64位) 朝捆;
?CentOS版本5.x般渡、6.x (64位) 或7.x;
?Oracle Linux版本5.x 或者6.x (64位) 芙盘;
本文檔選擇的是CentOS版本 6.5 (64位) 驯用;
2.2 系統(tǒng)基礎(chǔ)軟件的需求
在每一臺(tái)主機(jī)上都要安裝以下軟件:
(1) yum和rpm (RHEL/CentOS/Oracle Linux);
(2)zypper(SLES)儒老;
(3)scp蝴乔,curl,wget驮樊;
2.3 JDK的需求
Oracle JDK 1.7.0_79 64-bit (默認(rèn))
OpenJDK 7 64-bit (SLES不支持)
3 安裝各項(xiàng)軟件前的先決條件
3.1 ambari和監(jiān)控軟件所需條件
安裝ambari之前薇正,為了保證ambari各項(xiàng)服務(wù)和各項(xiàng)監(jiān)控服務(wù)的正常運(yùn)行片酝,根據(jù)操作系統(tǒng)的不同,需要確定一些已經(jīng)安裝的軟件的版本挖腰,以下列出的軟件版本必須符合要求钠怯。即:如果現(xiàn)有的系統(tǒng)上有以下軟件,版本必須與下面列出的版本完全一致曙聂,如果沒(méi)有的話(huà)安裝程序會(huì)自行安裝。
圖表3-1軟件先決配置表
3.2 Ambari與HDP版本兼容性
由于軟件版本的升級(jí)鞠鲜,各版本之間由于版本之間的兼容性可能會(huì)導(dǎo)致一些問(wèn)題宁脊。
表格 3-2 版本兼容性
4 安裝實(shí)例說(shuō)明
本文所選擇的系統(tǒng)與軟件版本,如下表所示:
表格 4-1系統(tǒng)與軟件版本
4.1 安裝Ambari前的操作系統(tǒng)準(zhǔn)備
4.1.1 配置主機(jī)名
Ambari配置集群信息的時(shí)候是通過(guò)全限定主機(jī)名來(lái)確定集群中的機(jī)器信息的贤姆,所以必須確保主機(jī)名無(wú)誤榆苞。
4.1.2 配置集群信息
在每一臺(tái)機(jī)器的hosts文件上都要做映射配置,命令如下:
# vi /etc/hosts
然后添加如下內(nèi)容:
表格 4-2 ip映射信息表
4.1.3 配置ssh免密碼互通
首先霞捡,在主節(jié)點(diǎn)和其他節(jié)點(diǎn)上都執(zhí)行以下命令坐漏,以確保每臺(tái)機(jī)器都可產(chǎn)生公鑰。
然后一路回車(chē)即可.然后將每個(gè)節(jié)點(diǎn)的公鑰組成一個(gè)新的authorized_keys文件,然后將其分發(fā)到每個(gè)節(jié)點(diǎn)中.從而碧信,完成了各個(gè)節(jié)點(diǎn)的免密登錄操作.
4.1.4 配置NTP時(shí)間同步
首先在主節(jié)點(diǎn)上做如下操作:
(1) 安裝時(shí)間服務(wù)器ntp:
#yum install ntp
(2) 修改ntpd配置文件
(3) 開(kāi)啟時(shí)間同步服務(wù)器
#sevrice ntpd start
(4) 在其他各個(gè)從節(jié)點(diǎn)做相同操作,至此ntp同步完成
4.1.5關(guān)閉selinux
永久關(guān)閉SELinux
# vi /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled
重啟生效赊琳,重啟命令為:
# reboot
4.1.6關(guān)閉iptables防火墻
永久關(guān)閉(需要重啟)
# chkconfig iptables off
暫時(shí)關(guān)閉防火墻服務(wù)(需要重啟防火墻)
service iptables stop
查看防火墻狀態(tài)
# chkconfig –list|grep iptables
提示:Linux下的其它服務(wù)都可以用以上命令執(zhí)行開(kāi)啟和關(guān)閉操作
重啟生效,重啟命令為:
# reboot
4.2 創(chuàng)建yum本地源
首先檢驗(yàn)主節(jié)點(diǎn)是否安裝httpd服務(wù)器砰碴,命令如下:
rpm -qa |grep httd
若沒(méi)有躏筏,則安裝,命令如下:
#yum install httpd
啟動(dòng)httpd
#service httpd start
chkconfig httpd on
對(duì)文件夾與子文件夾內(nèi)所有文件授予同一權(quán)限呈枉,命令如下:
chmod –R ugo+rX /var/www/html
打開(kāi)網(wǎng)絡(luò)
vim /etc/sysconfig/network-script/ifcfg-eth0
修改為onboot=yes
安裝成功之后趁尼,Apache工作目錄默認(rèn)在/var/www/html。
配置:
檢查端口是否占用猖辫,Apache http服務(wù)使用80端口
[root@master ~]$ netstat -nltp | grep 80
如果有占用情況酥泞,安裝完畢之后需要修改Apache http服務(wù)的端口號(hào):
[root@ master ~]$ vi /etc/httpd/conf/httpd.conf
修改監(jiān)聽(tīng)端口,Listen 80為其他端口啃憎。
將所下載的安裝文件放在/etc/www/html下芝囤,然后啟動(dòng)
[root@ master ~]$ service httpd start
可以在瀏覽器中查看http://master 看到Apache server的一些頁(yè)面信息,表示啟動(dòng)成功辛萍。
5 完全離線安裝Ambari前的準(zhǔn)備
離線安裝跟在線安裝的區(qū)別在于yum所使用的倉(cāng)庫(kù)的位置不同凡人,即把遠(yuǎn)程的倉(cāng)庫(kù)中的安裝包等資源拷貝一份兒放在本地,然后在yum倉(cāng)庫(kù)包文件夾中創(chuàng)建這些資源的本地倉(cāng)庫(kù)包叹阔,即可按照在線安裝的方式進(jìn)行安裝就行了挠轴。不過(guò)離線安裝需要先解決Ambari的rpm包的依賴(lài)性問(wèn)題,即首先要確保已經(jīng)安裝了postgresql8.4.3耳幢,或者有本地postgresql8.4.3倉(cāng)庫(kù)岸晦。
5.1 先決條件
Ambari的離線安裝欧啤,需要使用yum,如果是新安裝的操作系統(tǒng)启上,可能缺少很多必要的條件邢隧,以下表格按照從前往后的順序,依次說(shuō)明冈在,如果已經(jīng)實(shí)現(xiàn)了某些條件倒慧,跳過(guò)那些條件即可。
因操作系統(tǒng)中本身自帶軟件的復(fù)雜性包券,如在安裝中提示有其他所需軟件或提示現(xiàn)有軟件升級(jí)纫谅,按照提示解決即可.
5.2 建立本地資源庫(kù)
在集群內(nèi)部某臺(tái)機(jī)器上安裝http服務(wù)即可,然后將提供的tar包或者rpm包放置到那臺(tái)機(jī)器上的/var/www/html目錄(Apache默認(rèn)目錄)下解壓即可溅固,最好在這個(gè)目錄下新建一個(gè)目錄付秕,將所有的ambari的tar包和HDP及HDPUTIL的tar包都放置進(jìn)去并解壓,如果機(jī)器沒(méi)有手動(dòng)安裝PostgreSQL侍郭,將提供的上述軟件的軟件包一并放入到本地資源庫(kù)中即可询吴。
5.3 設(shè)置yum不檢查gpg密鑰
經(jīng)檢測(cè)離線安裝Hadoop集群時(shí)會(huì)因?yàn)閥um檢查要安裝的軟件的gpg密鑰而導(dǎo)致錯(cuò)誤,此時(shí)可通過(guò)關(guān)閉系統(tǒng)的yum gpg檢查來(lái)規(guī)避錯(cuò)誤
# vi /etc/yum.conf
設(shè)置gpgcheck屬性值為0即可
gpgcheck=0
5.4 安裝ambari服務(wù)
# yum –install ambari-server
5.5 ambari設(shè)置
# ambari-server setup
運(yùn)行過(guò)后則會(huì)出現(xiàn)是否進(jìn)入ambari-server守護(hù)進(jìn)程,選擇jdk,配置數(shù)據(jù)庫(kù)等信息,可根據(jù)系統(tǒng)自身需要進(jìn)行選擇.
當(dāng)出現(xiàn)“Ambari Server ‘setup’ completed successfully”亮元,則說(shuō)明Ambari-server配置成功猛计。需要說(shuō)明的是,此次安裝選擇的數(shù)據(jù)庫(kù)是PostgreSQL數(shù)據(jù)庫(kù)爆捞,其中用戶(hù)有滑、數(shù)據(jù)庫(kù)等都是提前默認(rèn)好的;若選擇MySQL數(shù)據(jù)庫(kù)嵌削,則需要在安裝Ambari-server之前建好用戶(hù)毛好、賦予權(quán)限、建好數(shù)據(jù)庫(kù)等等操作苛秕。
然后啟動(dòng)ambari-server,最后根據(jù)需要安裝hadoop生態(tài)中的各項(xiàng)服務(wù).
自定義service服務(wù)
1 ambari自定義擴(kuò)展service
從第一部分可知,ambari具有進(jìn)行二次開(kāi)發(fā)的功能,主要工作就是將自研的組件等集成到ambari中,并對(duì)其進(jìn)行管理監(jiān)控.本文主要以集成redis為例進(jìn)行講述.
首先,由于service都是隸屬于stack的,所以要決定自定義一個(gè)service屬于哪個(gè)stack.,又因?yàn)橐呀?jīng)安裝了HDP2.5.0具有stack,所以,本文將自定的service放置在HDP2.5.0的stack下.新建service名為:redis-service,其中包含結(jié)構(gòu)圖如下圖所示:
其中configurate中的xml文件主要安裝完成配置該模塊的調(diào)用,package中主要問(wèn)控制service生命周期的python文件,metainfo.xml文件則主要問(wèn)定義service的一些屬性,metrics.json與widgets.json控制著service的界面圖表顯示.
其中metainfo.xml實(shí)例如下:
其次,需要?jiǎng)?chuàng)建 Service 的生命周期控制腳本master.py 和 slave.py肌访。這里需要保證腳本路徑和上一步中 metainfo.xml 中的配置路徑是一致的。這兩個(gè) Python 腳本是用來(lái)控制 Master 和 Slave 模塊的生命周期艇劫。腳本中函數(shù)的含義也如其名字一樣:install 就是安裝調(diào)用的接口吼驶;start、stop 分別就是啟停的調(diào)用店煞;Status 是定期檢查 component 狀態(tài)的調(diào)用蟹演。其中master.py與slave.py的模板為:
Master.py
Slave.py
再次,將redis的rpm安裝文件放入到HDP安裝包的/var/www/html/ambari/HDP/centos6/目錄下.
再次,重啟ambari-server, 因?yàn)?Ambari Server 只有在重啟的時(shí)候才會(huì)讀取 Service 和 Stack 的配置。命令行執(zhí)行:ambari-server restart.
最后顷蟀,登錄 Ambari 的 GUI酒请,點(diǎn)擊左下角的 Action,選擇 Add Service鸣个。如下圖:
此時(shí)就可以在安裝service列表中看到Redis服務(wù)了.然后檢驗(yàn)該服務(wù)是否安裝成功.
2 ambari實(shí)現(xiàn)自定義擴(kuò)展service界面顯示
在第二章的第一節(jié)中service自定義中提及metircs.json與widget.json時(shí), 其中Widget 也就是 Ambari Web 中呈現(xiàn) Metrics 的圖控件羞反,它會(huì)根據(jù) Metrics 的數(shù)值布朦,做出一個(gè)簡(jiǎn)單的聚合運(yùn)算,最終呈現(xiàn)在圖控件中昼窗。Widget 則進(jìn)一步提升了 Ambari 的易用性是趴,以及可配置化。Widget 是顯示 AMS 收集的 Metrics 屬性.
此處緊接著上節(jié),其中metrics.json模板為:
widget.json為:
至此,重啟ambari-service,命令如下:
3 數(shù)據(jù)采集及發(fā)送
利用shell腳本將redis運(yùn)行信息數(shù)據(jù)采集并一次性發(fā)送到metrics collector中,腳本如下所示:
運(yùn)行如下命令(這里要注意的是參數(shù) 1 是 Metrics Collector 的所在機(jī)器澄惊,并不是 Ambari Server所在的機(jī)器):
./metric_sender.sh ambari_collector_host total_connections_received redis
如果過(guò)程不出意外,等待2-4分鐘界面上即有數(shù)據(jù)顯示.通過(guò)上面的操作唆途,可以實(shí)現(xiàn)將ambari沒(méi)有納入到監(jiān)控管理的軟件進(jìn)行管理監(jiān)控。
本文原創(chuàng)首發(fā)于Cobub官網(wǎng)博客掸驱,如需轉(zhuǎn)載請(qǐng)注明出處肛搬!
Cobub Razor是一款開(kāi)源 移動(dòng)應(yīng)用數(shù)據(jù)統(tǒng)計(jì)分析 工具。
Cobub開(kāi)源社區(qū)QQ194022996