Apache Ambari是对Hadoop进行监控、管理和生命周期管理的基于网页的开源项目。它也是一个为Hortonworks数据平台选择管理组建的项目。Ambari支持管理的服务有:
Apache HBase
Apache HCatalog
Apache Hadoop HDFS
Apache Hive
Apache Hadoop MapReduce
Apache Oozie
Apache Pig
Apache Sqoop
Apache Templeton
Apache Zookeeper
ambari可以使安装hadoop集群,管理hadoop集群服务,监控集群都很容易。目前ambari支持的操作系统为rhel/centos 5、rhel/centos6 。
安装步骤为
1. 首先需要使用svn客户端获取ambari的源码
$ svn checkout http://svn.apache.org/repos/asf/incubator/ambari/trunk ambari
2. 对ambari源码进行打包编译
$ yum install rpm-build $ cd hmc/package/rpm $ ./create_hmc_rpm.sh $ cd mon_dashboard/package/rpm $ ./create_dashboard_rpm.sh
如果编译成功的话,将会生成下面的rpm文件
1) hmc/package/rpm/build/rpmbuild/RPMS/noarch/ambari-1.0.0-1.noarch.rpm
2) hmc/package/rpm/build/rpmbuild/RPMS/noarch/ambari-agent-1.0.0-1.noarch.rpm
3) mon_dashboard/package/rpm/build/rpmbuild/RPMS/noarch/hdp_mon_dashboard-0.0.1-2.noarch.rpm
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_64、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集群配置。