(WJW)Ambari在離線環境中安裝Hadoop集羣
如果手工安裝Hadoop集羣,在管理和後繼部署中,越來越多的問題不斷出現,主要如下:
- 各集羣節點的配置同步
- 新應用的部署:比如爲集羣添加hbase應用,需要很細心複雜的配置才能完成,而且要是操作錯誤,還可能導致正常的集羣崩潰
- 新集羣節點增加:同上
- 集羣架構調整:比如原來hdfs的namenode和ResourceManager等應用主節點都是放到一臺服務器上的,當應用多後,需要調整獨立,發現異常複雜
- Hadoop集羣監控 Apache有個項目Ambari能很好的解決上述所有問題!
Ambari 跟 Hadoop 等開源軟件一樣,也是 Apache Software Foundation 中的一個項目,並且是頂級項目.目前最新的發佈版本是 2.1.2.
就 Ambari 的作用來說,就是創建,管理,監視 Hadoop 的集羣,但是這裏的 Hadoop 是廣義,指的是 Hadoop 整個生態圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而並不僅是特指 Hadoop.
用一句話來說,Ambari 就是爲了讓 Hadoop 以及相關的大數據軟件更容易使用的一個工具.
說到這裏,大家就應該明白什麼人最需要 Ambari 了.那些苦苦花費好幾天去安裝,調試 Hadoop 的初學者是最能體會到 Ambari 的方便之處的.
而且,Ambari 現在所支持的平臺組件也越來越多,例如流行的 Spark,Storm 等計算框架,以及資源調度平臺 YARN 等,我們都能輕鬆地通過 Ambari 來進行部署.
Ambari 自身也是一個分佈式架構的軟件,主要由兩部分組成:Ambari Server 和 Ambari Agent.簡單來說,用戶通過 Ambari Server 通知 Ambari Agent 安裝對應的軟件;
Agent 會定時地發送各個機器每個軟件模塊的狀態給 Ambari Server,最終這些狀態信息會呈現在 Ambari 的 GUI,方便用戶瞭解到集羣的各種狀態,並進行相應的維護.
生產中的hadoop集羣機器都很多,而且基本都不允許連接公網,爲方便快速部署,非常有必要建立一個本地Repository,使Ambari在離線環境中安裝Hadoop集羣!
[X] 安裝環境:
- 系統版本:CentOS 6.3 x86_64
- JAVA版本:JDK-1.7.x
- 確保機器的 Python 版本大於或等於2.6
- 服務器列表:
192.168.68.17 T1.youyuan.cn
#Ambari Server,namenode1,resourcemanager
192.168.68.18 T2.youyuan.cn
#Ambari Agent,namenode2,journalnode1,datanode1,nodemanager1
192.168.68.20 T3.youyuan.cn
#Ambari Agent,journalnode2,datanode2,nodemanager2
192.168.68.21 T4.youyuan.cn
#Ambari Agent,journalnode3,datanode3,nodemanager3
- SSL
需要openssl的1.0以上版本!
yum install openssl
或者
yum upgrade openssl
- JDK
建議安裝Sun的JDK1.7版本!
安裝完畢並配置java環境變量,在/etc/profile末尾添加如下代碼:
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
保存退出即可,然後執行source /etc/profile
生效.在命令行執行java -version 如下代表JAVA安裝成功.
- ssh
需要配置各個節點的免密碼登錄!
首先在自己機器上使用ssh-keygen -t rsa
會要求輸入密碼(必須爲空),回車幾次,然後會在HOME目錄下生成.ssh文件夾,
裏面有私鑰和公鑰,公鑰爲~/.ssh/id_rsa.pub
,私鑰爲~/.ssh/id_rsa
.
配置本地的免登錄 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
現在你需要將你的公鑰拷貝到服務器上,如果你的系統有ssh-copy-id命令,拷貝會很簡單:ssh-copy-id 用戶名@服務器名
,
否則,你需要手動將你的私鑰拷貝到服務器上的~/.ssh/authorized_keys文件中!scp ~/.ssh/authorized_keys T1.youyuan.cn:/root/.ssh/
- NTP
集羣的時鐘要保證基本的一致.稍有不一致是可以容忍的,但是很大的不一致會 造成奇怪的行爲. 運行 NTP 或者其他什麼東西來同步你的時間.
如果你查詢的時候或者是遇到奇怪的故障,可以檢查一下系統時間是否正確!
echo "server 192.168.0.2" >> /etc/ntp.conf
chkconfig ntpd on
service ntpd restart
ntpq -p
- ulimit和nproc
Hdaoop會在同一時間使用很多的文件句柄.大多數linux系統使用的默認值1024是不能滿足的,修改/etc/security/limits.conf
文件爲:
* soft nproc 16384
* hard nproc 16384
* soft nofile 65536
* hard nofile 65536
- 修改 192.168.68.17,192.168.68.18,192.168.68.20,192.168.68.21 的
etc/hosts
文件 在文件最後添加:
192.168.68.17 T1.youyuan.cn
192.168.68.18 T2.youyuan.cn
192.168.68.20 T3.youyuan.cn
192.168.68.21 T4.youyuan.cn
- 禁止 PackageKit
pkill -9 packagekitd
vim /etc/yum/pluginconf.d/refresh-packagekit.conf
將內容改爲enabled=0
[X] 安裝Ambari Server
在T1上操作
[1] 安裝基本軟件並配置:
yum install yum-utils createrepo yum-plugin-priorities
yum install httpd
編輯/etc/yum/pluginconf.d/priorities.conf
,修改爲如下:
[main]
enabled=1
gpgcheck=0
設置httpd:
chkconfig httpd on
service httpd start
[2] 下載主要資源並配置:
採用P2P下載工具(如迅雷等)下載上述主要資源的完整包,再上傳到本地源服務器進行部署.
CenOS最新鏡像下載點:http://isoredirect.centos.org/centos/6/isos/x86_64/
下載後掛載,並拷貝所有內容到/var/www/html/centos6
:
mount -o loop /data/install/CentOS-6.7-x86_64-bin-DVD/CentOS-6.7-x86_64-bin-DVD1.iso /media
cp -r /media /var/www/html/centos6
umount /media
下載拷貝HDP-2.3.2.0和HDP-UTILS-1.1.0.20並解壓到/var/www/html/hdp
:
cd /data/temp
wget -O HDP-2.3.2.0-centos6-rpm.tar.gz http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.2.0/HDP-2.3.2.0-centos6-rpm.tar.gz
wget -O 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
mkdir -p /var/www/html/hdp
tar xf HDP-2.3.2.0-centos6-rpm.tar.gz -C /var/www/html/hdp
tar xf HDP-UTILS-1.1.0.20-centos6.tar.gz -C /var/www/html/hdp
下載拷貝Ambari-2.1.2並解壓到/var/www/html/ambari
wget -O ambari-2.1.2-centos6.tar.gz http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.2/ambari-2.1.2-centos6.tar.gz
mkdir -p /var/www/html/ambari
tar xf ambari-2.1.2-centos6.tar.gz -C /var/www/html/ambari
完成後結構如下:
[root@Ambari ~]#cd /var/www/html/
[root@yum html]#tree -L 2
.
├── ambari
│ └── ambari-2.1.2
├── centos6
│ ├── CentOS_BuildTag
│ ├── EFI
│ ├── EULA
│ ├── GPL
│ ├── images
│ ├── isolinux
│ ├── Packages
│ ├── RELEASE-NOTES-en-US.html
│ ├── repodata
│ ├── RPM-GPG-KEY-CentOS-6
│ ├── RPM-GPG-KEY-CentOS-Debug-6
│ ├── RPM-GPG-KEY-CentOS-Security-6
│ ├── RPM-GPG-KEY-CentOS-Testing-6
│ └── TRANS.TBL
└── hdp
├── HDP
└── HDP-UTILS-1.1.0.20
11 directories, 9 files
創建完成後,就可以通過web路徑訪問測試了(路徑可能不同):http://T1.youyuan.cn/ambari/ambari-2.1.2/centos6/
,輸出:
Index of /ambari/ambari-2.1.2/centos6
[ICO] Name Last modified Size Description
[DIR] Parent Directory -
[DIR] RPM-GPG-KEY/ 03-Oct-2015 22:48 -
[DIR] ambari/ 03-Oct-2015 22:48 -
[ ] build.id 03-Oct-2015 22:48 566
[TXT] build_metadata.txt 03-Oct-2015 22:48 196
[TXT] changelog.txt 03-Oct-2015 22:48 0
[DIR] repodata/ 03-Oct-2015 22:48 -
Apache/2.2.15 (CentOS) Server at t1.youyuan.cn Port 80
[3] 配置本地repo文件:
在各個節點上都要操作!把原來的repo文件屏蔽掉
cd /etc/yum.repos.d/
rename .repo .repoBAK *.repo
#恢復指令
#cd /etc/yum.repos.d/
#rename .repoBAK .repo *.repoBAK
新建CentOS-Media.repo
配置文件vi /etc/yum.repos.d/CentOS-Media.repo
:
文件內容如下:
[CentOS6-Media]
name=CentOS6-Media
baseurl=http://T1.youyuan.cn/centos6
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[Ambari-2.1.2]
name=Ambari-2.1.2
baseurl=http://T1.youyuan.cn/ambari/ambari-2.1.2/centos6/
gpgcheck=0
enabled=1
[HDP-2.3.2.0]
name=HDP-2.3.2.0
baseurl=http://T1.youyuan.cn/hdp/HDP/centos6/2.x/updates/2.3.2.0
gpgcheck=0
enabled=1
[HDP-UTILS-1.1.0.20]
name=HDP-UTILS-1.1.0.20
baseurl=http://T1.youyuan.cn/hdp/HDP-UTILS-1.1.0.20/repos/centos6
gpgcheck=0
enabled=1
新建ambari.repo
配置文件vi /etc/yum.repos.d/ambari.repo
:
文件內容如下:
[Ambari-2.1.2]
name=Ambari-2.1.2
baseurl=http://T1.youyuan.cn/ambari/ambari-2.1.2/centos6/
gpgcheck=0
enabled=1
[4] 校驗YUM倉庫ambari:
執行yum repolist
,
已加載插件:fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
倉庫標識 倉庫名稱 狀態
Ambari-2.1.2 Ambari-2.1.2 6
CentOS6-Media CentOS6-Media 6,575
HDP-2.3.2.0 HDP-2.3.2.0 175
HDP-UTILS-1.1.0.20 HDP-UTILS-1.1.0.20 42
repolist: 6,798
如果有向上面輸出的話,就可以開始安裝了!
[5] YUM在線安裝: ambari-server
yum install ambari-server
等待安裝完成!
[6] 配置AMBARI-SERVER
##指定JAVA_HOME
ambari-server setup -j /usr/java/default
##不指定JAVA_HOME執行
ambari-server setup
選擇n會按默認配置
數據庫類型:postgresql
數據庫:ambari
用戶名:ambari
密碼:bigdata
等待安裝完成
[7] 啓動AMBARI-SERVER
##啓動:
ambari-server start
##查看:
ps -ef | grep Ambari
##停止:
ambari-server stop
##幫助
ambari-server help
然後訪問:http://T1.youyuan.cn:8080
不出意外的話就安裝完成了
用戶名/密碼:admin/admin
在Select Stack
頁面,打開Advanced Repository Options
,要只選擇redhat6
,並且把Repository
改成
http://T1.youyuan.cn/hdp/HDP/centos6/2.x/updates/2.3.2.0
http://T1.youyuan.cn/hdp/HDP-UTILS-1.1.0.20/repos/centos6
[8] 安裝AMBARI-AGENT
在網絡環境不好的地方或者sshd的端口不是標準的22時,可以在每個agent節點上先手工安裝AMBARI-AGENT
yum install ambari-agent
備註:
- Ambari安裝的環境路徑: 各臺機器的安裝目錄:
/usr/lib/hadoop
/usr/lib/hbase
/usr/lib/zookeeper
/usr/lib/hcatalog
/usr/lib/hive
- Log路徑, 這裏需要看出錯信息都可以在目錄下找到相關的日誌
/var/log/hadoop
/var/log/hbase
- 配置文件的路徑
/etc/hadoop
/etc/hbase
/etc/hive
- HDFS的存儲路徑
/hadoop/hdfs
FAQ
- 主機名格式必須是
hoastname.domain
,如T1.youyuan.cn
- Zookeeper-Agent端修改Server指向的HOSTNAME,
/etc/ambari-agent/conf/ambari-agent.ini
,如修改過主機hostname - 安裝失敗後或重新安裝先執行
ambari-server reset
後ambari-setup