Apache Ambari是對Hadoop進行監控、管理和生命週期管理的基於網頁的開源項目。它也是一個爲Hortonworks數據平臺選擇管理組建的項目。Ambari支持管理的服務有:php
Apache HBase
Apache HCatalog
Apache Hadoop HDFS
Apache Hive
Apache Hadoop MapReduce
Apache Oozie
Apache Pig
Apache Sqoop
Apache Templeton
Apache Zookeeper
html
ambari可使安裝hadoop集羣,管理hadoop集羣服務,監控集羣都很容易。目前ambari支持的操做系統爲rhel/centos 五、rhel/centos6 。java
安裝步驟爲node
1. 首先須要使用svn客戶端獲取ambari的源碼linux
$ svn checkout http://svn.apache.org/repos/asf/incubator/ambari/trunk ambari
2. 對ambari源碼進行打包編譯ios
$ yum install rpm-build $ cd hmc/package/rpm $ ./create_hmc_rpm.sh $ cd mon_dashboard/package/rpm $ ./create_dashboard_rpm.sh
若是編譯成功的話,將會生成下面的rpm文件web
1) hmc/package/rpm/build/rpmbuild/RPMS/noarch/ambari-1.0.0-1.noarch.rpmsql
2) hmc/package/rpm/build/rpmbuild/RPMS/noarch/ambari-agent-1.0.0-1.noarch.rpmapache
3) mon_dashboard/package/rpm/build/rpmbuild/RPMS/noarch/hdp_mon_dashboard-0.0.1-2.noarch.rpmjson
3. 安裝ambari前須要作的步驟
將須要安裝的hadoop集羣按照namenode,datanode進行劃分,namenode節點做爲ambari master節點,其餘節點做爲ambari slave。
設置namenode節點到其餘節點的無密碼登錄的ssh設置。
將各個節點的防火牆中止 service iptables stop
4. 開始安裝ambari
由於ambari須要依賴模塊puppet ruby php apache等,因此須要先使用yum源安裝這些組件
在每一個節點設置系統yum源
$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm OR $ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm $ sudo rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm
在ambari master主節點中安裝puppet php等模塊
$ sudo yum install php-pecl-json # version 1.2.1 compatible with php-5.1 or php-5.2 $ sudo yum install php-pdo
檢測是否安裝posix $ php -m | grep posix
若是沒有找到posix模塊,使用
$ sudo yum install php-process
安裝便可。
$ sudo yum install pdsh $ sudo yum install httpd-devel $ sudo yum install mod_passenger $ sudo yum install puppet-2.7.9 $ sudo yum install ruby-devel
上面的模塊都安裝完成後,在ambari master節點安裝
$ sudo rpm -iv ambari-1.0.0-1.noarch.rpm $ sudo rpm -iv hdp_mon_dashboard-0.0.1-2.noarch.rpm
在其餘的slave節點安裝
$ sudo rpm -Uvh ambari-agent-1.0.0-1.noarch.rpm
由於hadoop須要jdk環境運行,因此須要到 http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html 下載
1) jdk-6u26-linux-x64.bin
2) jdk-6u26-linux-i586.bin
安裝包,而後放到 /var/run/hmc/downloads/文件夾中
4. 啓動ambari server開始安裝集羣
在ambari master主節點啓動ambari server 服務
service ambari start
而後在瀏覽器中打開
http://AMBARIMASTER/hmc/html/
地址開始安裝hadoop 集羣
安裝集羣須要ambari master 節點中root 用戶的SSH
Private Key File ,路徑在/root/.ssh/id_rsa
而後將所須要安裝的slaves
節點全部hostname 每行一個進行分割存爲文件
在頁面中都選擇好文件後,便可進行安裝,在安裝服務的過程當中須要等一段時間,由於所須要的hadoop
都是經過yum 進行下載安裝。
等安裝成功後,便可對集羣進行管理,監控了。
參考 http://incubator.apache.org/ambari/install.html
-------------------------------------------------------------
準備工做
1. 設置sudo免密碼登錄
因爲CentOS安裝以後,普通用戶無sudo權限,故應該設置sudo權限。
參考文章:http://www.cnblogs.com/maybob/p/3298846.html
2. 設置SSH無密碼登錄遠程主機
參考文章:http://www.cnblogs.com/maybob/p/3298903.html
3. 集羣時間同步(Enable NTP on the Cluster and on the Browser Host)
The clocks of all the nodes in your cluster and themachine that runs the browser through which you access Ambari Web must be ableto synchronize with each other.
參考文章:http://www.cnblogs.com/maybob/p/3332003.html
4. 修改每個主機的hosts文件
$ sudo vi /etc/hosts
向此文件中添加IP FQDN
以下:
192.168.3.21 cloudgis22.edu.cn
192.168.2.174 cloudgis33.edu.cn
5. 修改每個主機的網絡配置文件
$ sudo vi /etc/sysconfig/network
修改以下,如有的設置已存在,則能夠再也不設置:
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=cloudgiss33.edu.cn
6. 使每個主機的 SELinux失效
1. 臨時使SELinux失效
Ambari運行的話必須使SELinux失效,執行下面命令:
$ sudo setenforce 0
而上面的命令只是臨時使SELinux失效,當主機從新啓動後會失效。由於咱們須要SELinux一直失效,因此爲了使disabled SELinux一直失效,以下處理。
2. 使SELinux一直失效
$ sudo vi /etc/selinux/config
# This file controls the state of SELinux onthe system.
# SELINUX= can take one of these threevalues:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use.Possible values are:
# targeted - Only targeted network daemons are protected.
# strict- Full SELinux protection.
SELINUXTYPE=targeted
7. 使每一主機的iptables失效
$ sudo chkconfig iptables off
$ sudo /etc/init.d/iptables stop
8. 使每一主機的PackageKit失效
$ sudo vi/etc/yum/pluginconf.d/refresh-packagekit.conf
設置以下:
enabled=0
9. 檢查umask值
使用umask命令查看umask值;
若是不爲0022,則修改~/.bashrc文件
$ vi ~/.bashrc
在文件中添加:
umask 022
設置,而後從新登陸以後,再使用umask命令查看使用設置正確。
安裝ambari
1. 安裝ambari
因爲本人使用本地倉庫安裝,故此處只列出本地倉庫安裝步驟,如需在線安裝則參考連接:
http://incubator.apache.org/ambari/1.2.4/installing-hadoop-using-ambari/content/ambari-chap2-1.html
2. 創建本地安裝包倉庫
1. 下載ambari所需安裝包
先由網上如今ambari所需全部安裝包,下載連接:
http://pfsense.mirrors.ovh.net/hortonworks/
使用網頁抓取工具Teleport_Pro下載。
2. 下載ambari
因爲安裝ambari-server是須要使用ambari,故應下載,下載地址:
http://public-repo-1.hortonworks.com/ambari/centos6/ambari-1.2.4.9-centos6.tar.gz
解壓此文件,並將解壓後的文件放入剛纔下載的hortonworks文件夾中的ambari同級目錄便可,如有覆蓋提示,則選擇覆蓋。
3. 下載安裝過程當中所需依賴包
安裝ambari-server過程當中須要安裝postgresql。
在使用ambari Web界面配置而且安裝hadoop及其所需組件式,是須要一些依賴包的,此處只列取安裝HDFS、MapReduce、HBase、Zookeeper、Ganglia、Nagios時所需的並在其餘下載的軟件安裝包倉庫中不存在的依賴包。
4. 創建軟件倉庫
1. hortonworks倉庫(搭建hadoop集羣及其組建時所需安裝包)
直至2.2節中hortonworks文件中的安裝包結構是按照倉庫結構的,故再也不生成倉庫結構,直接拷貝便可。
2. CentOS ISO中安裝包倉庫
將CentOS鏡像的安裝包中文件,拷貝在同一文件中,如(CentOS_6.4_64),直接使用。
3. necessary安裝包倉庫
建立necessary文件夾,並在necessary文件夾中建立Packages文件夾,將2.3中所列安裝包拷貝至Packages文件夾下。
進入necessary目錄。使用命令:
$ createrepo .
此時,就會在necessary目錄下建立倉庫所需文件。
至此,所需的軟件倉庫都創建好了,分別爲文件夾hortonworks、CentOS_6.4_6四、necessary。
3. 搭建ftp服務器
搭建ftp服務器,安裝ftp服務器vsftpd
$ sudo yum install vsftpd
安裝完成後將建立好的三個軟件倉庫文件夾拷貝到ftp服務器目錄/var/ftp,如:
$ sudo cp -r ~/hortonworks /var/ftp
$ sudo cp -r ~/CentOS_6.4_64 /var/ftp
$ sudo cp -r ~/necessary /var/ftp
修改/var/ftp/hortonworks目錄下全部文件訪問的權限
$ sudo chmod –R 755 /var/ftp/hortonworks
$ sudo chmod –R 755/var/ftp/CentOS_6.4_64
$ sudo chmod –R 755 /var/ftp/necessary
如今啓動ftp服務
$ sudo service vsftpd start
若是顯示行中有ok則表示啓動成功。
這是你能夠在瀏覽器中輸入(假設你的ftp服務器部署在cloudgis33.edu.cn上)
檢查ftp服務器是否設置成功而且啓動成功。
4. 添加各倉庫repo文件
1. ambari.repo
執行下述命令下載repo文件。
$ wgethttp://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.2.4.9/ambari.repo
而後對下載下來的文件ambari.repo文件進行修改(假設ftp服務器搭建在cloudgis33.edu.cn主機上),修改以下:
[ambari-1.x]
name=Ambari 1.x
baseurl=ftp://cloudgis33.edu.cn/hortonworks/ambari/centos6/1.x/GA
gpgcheck=1
gpgkey=ftp://cloudgis33.edu.cn/hortonworks/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.15]
name=Hortonworks Data Platform Utils Version- HDP-UTILS-1.1.0.15
baseurl=ftp://cloudgis33.edu.cn/hortonworks/HDP-UTILS-1.1.0.15/repos/centos6
gpgcheck=0
gpgkey=ftp://cloudgis33.edu.cn/hortonworks/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[Updates-ambari-1.2.4.9]
name=ambari-1.2.4.9 - Updates
baseurl=ftp://cloudgis33.edu.cn/hortonworks/ambari/centos6/1.x/updates/1.2.4.9
gpgcheck=1
gpgkey=ftp://cloudgis33.edu.cn/hortonworks/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
將修改的倉庫配置文件拷貝至/etc/yum.repos.d目錄。
$ sudo cp ambari.repo /etc/yum.repos.d
2. CentOS_6.4_64.repo
在目錄/etc/yum.repos.d/建立CentOS_6.4_64.repo文件:
$ sudo vi CentOS_6.4_64.repo
在此文件中添加以下:
[base]
name=CentOS_6.4_64 - Base
baseurl=ftp://cloudgis33.edu.cn/CentOS_6.4_64
enabled=1
gpgcheck=0
3. necessary.repo文件
在目錄/etc/yum.repos.d/建立necessary.repo文件:
$ sudo vi necessary.repo
在此文件中添加以下:
[necessary]
name=necessary
baseurl=ftp://cloudgis33.edu.cn/necessary
enabled=1
gpgcheck=0
4. 查看倉庫信息
使用sudo yum clean all清理yum倉庫軟件包信息緩存:
$ sudo yum clean all
使用sudo yum repolist命令查看yum倉庫軟件包信息列表:
$ sudo yum repolist
5. 安裝ambari-server
$ sudo yum install ambari-server
此時則會從配置的ftp倉庫中找到ambari安裝文件進行安裝,此時因爲已經安裝了 postgresql相關組件,故這次安裝過程不會再次安裝postgresql相關組件;若是先前沒有安裝postgresql相關組件,則安裝進程則會進行聯網下載安裝,因爲此時假定是不能聯網的,故安裝過程會失敗。
6. 配置本地倉庫
因爲會在安裝而且啓動ambari-server以後的web配置頁面中要選擇安裝的版本,如1.3.0和1.2.1,故若是你安裝的是1.3.0版本則修改文件
/var/lib/ambari-server/resources/stacks /HDPLocal/1.3.0/repos/repoinfo.xml,若是你安裝的是1.2.1,則修改文件/var/lib/ambari-server/resources/stacks/HDPLocal/1.2.1/repos/repoinfo.xml,此處安裝1.3.0:
$ sudo vi/var/lib/ambari-server/resources/stacks/HDPLocal/1.3.0/repos/repoinfo.xml
<os type="centos6">
<repo>
<baseurl>ftp://cloudgis33.edu.cn/hortonworks/HDP/centos6/1.x/GA/1.3.0.0</baseurl>
<repoid>HDP-1.3.0</repoid>
<reponame>HDP</reponame>
</repo>
<repo>
<baseurl> ftp://cloudgis33.edu.cn/hortonworks/HDP-UTILS-1.1.0.15/repos/centos6</baseurl>
<repoid>HDP-epel</repoid>
<reponame>HDP-epel</reponame>
<mirrorslist><![CDATA[http://mirrors.fedoraproject.org
/mirrorlist?repo=epel-6&arch=$basearch]]></mirrorslist>
</repo>
</os>
7. Setup ambari-server
若是此處你已經安裝了jdk-6u31-linux-x64.bin,假設javahome表示java安裝路徑,則能夠執行以下命令:
$ sudo ambari-server setup –j javahome–s
-s 參數表示默認安裝---Setup runs silently. Accepts all default prompt values.
-v 參數表示輸入安裝過程當中的冗餘和警告信息-- Prints verbose info and warning messages to the console duringSetup.
-s -v參數均可以不選擇。
若是你沒有安裝java,則應該將先前下載的jdk-6u31-linux-x64.bin文件拷貝至/var/lib/ambari-server/resources。
則使用:
$ sudo ambari-server setup -s
此時安裝進程會將java安裝至/usr/jdk64/jdk1.6.0_31目錄,接下來配置java環境變量。
$ sudo vi /etc/profile
添加以下:
export JAVA_HOME=/usr/jdk64/jdk1.6.0_31
export PATH=$JAVA_HOME/bin:$PATH
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
在每一主句都應手動配置環境變量。
啓動ambari-server
啓動ambari-server
$ sudo ambari-server start
打開瀏覽器,使用ambari配置hadoop
在配置頁面setup2中
Target hosts設置全域名,一個全域名一行
Host Registration Information中選擇~/.ssh目錄下id_rsa文件
SSH user (root or passwordless sudo account)輸入cloudgis
默認會爲root用戶,可是你也能夠選擇無密碼登錄的sudo用戶(無密碼登錄已經在上文中提到),如cloudgis。
Advanced Options中的複選框都選中,在JAVA_HOME一欄填寫你的JAVA_HOME,若是你在上一小節安裝ambari-server時,選擇的是默 認安裝java,則安裝進程會將java安裝至/usr/jdk64/jdk1.6.0_31目錄,因此你在此處輸入JAVA_HOME時,應該輸入 /usr/jdk64/jdk1.6.0_31(ambari配置頁面默認爲/usr/jdk/jdk1.6.0_31)。
下面的步驟都是具體的hadoop配置了,再也不詳細闡述hadoop集羣配置。