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集群配置。