Ambari是Hortonworks开源的一个管理和安装hadoop集群的工具,跟ClouderaManager类似。
1、系统要求
1.1、操作系统要求
都要求是64位操作系统。
Red Hat EnterPrise Linux:5.x 或 6.x
CentOS:5.x 或 6.x
SUSE Linux Enterprise Server 11, SP1
必须有相应版本的操作系统包,否则安装会遇到错误
1.2、 浏览器要求
Ambari是一个基于浏览器的web程序,要求如下:
Windows(Vista,7)
IE9或以上
Firefox最新版
Safari最新版
Google Chrome最新版
Mac OS X(10.6或以上)
Firefox最新版
Safari最新版
Google Chrome最新版
Linux(RHEL、CentOS、SLES)
Firefox最新版
Google Chrome最新版
1.3、软件要求
yum
rpm
scp
curl
wget
pdsh
如果使用SUSE操作系统,需要把Python版本升级到2.6.8-0.15.1
1.4、数据库要求
Hive/HCatalog、Oozie和Ambari都需要一个内部数据库。
Hive/HCatalog:默认使用Ambari自带的Mysql5.x。也可以自己配置Oracle 11g r2。
Oozie:默认使用Ambari自带的Derby。也可以自己配置Mysql5.x和Oracle 11g r2。
Ambari:默认使用Ambari自带的PostgreSQL8.x,也可以使用Oracle 11g r2.
2、环境准备
2.1、检查已经安装的软件:
RHEL/CentOS v5
RHEL/CentOS v6
SLES 11
Ambari Server |
|
-
postgresql 8.4.13-1.el6_3
-
postgresql-libs 8.4.13-1.el6_3
-
postgresql-server 8.4.13-1.el6_3
|
|
Ambari Agent[a] |
|
None |
None |
Nagios Server[b] |
|
-
nagios 3.2.3-2.el6
-
nagios-plugins1.4.9-1
|
-
nagios 3.2.3-2.1
-
nagios-plugins 1.4.9-1
-
nagios-www 3.2.3-2.1
|
Ganglia Collector[c] |
-
ganglia-gmetad 3.2.0-99
-
rrdtool 1.4.5-1.el5
|
-
ganglia-gmetad 3.2.0-99
-
rrdtool 1.4.5-1.el6
|
-
ganglia-gmetad 3.2.0-99
-
rrdtool 1.4.5-4.5.1
|
Ganglia Monitor[d] |
ganglia-gmond 3.2.0-99 |
ganglia-gmond 3.2.0-99 |
ganglia-gmond 3.2.0-99 |
[a] 集群中的每台机器都要安装,用来与Ambari服务器沟通,来执行命令。
[d] 集群中的每台机器都要安装,用来向Ganglia收集器发送指标。
|
2.2、设置无密码SSH
为了让Ambari Server在集群各节点上安装Ambari Agent,必须在各节点上配置无密码登录。
步骤如下:
1)在Ambari服务器上生成SSH公私钥对:
ssh-keygen
所有步骤全部点回车,如果提示是否要overwrite,填写y。会生成两个文件,分别是“/root/.ssh/id_rsa”是私钥,“/root/.ssh/id_rsa.pub”是公钥。
2)将公私钥拷贝到服务器所在主机的主账号.ssh目录下。如果就是在目标主机进行的操作,那么公私钥会自动生成在对应的路径下,如果不是,就拷贝过去。
3)将公钥的内容复制到“/root/.ssh/authorized_keys”文件中、
cat id_rsa.pub >> authorized_keys
4)将~/.ssh目录权限设置为700,~/.ssh/authorized_keys文件权限设置为600
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
5)将authorized_keys文件拷贝到集群其他主机root用户的~/.ssh路径下。
2.3、配置NTP,将集群中所有主机的时间同步。
2.4、系统不支持ip访问,需要使用主机名。
检查DNS,需要配置好集群中各节点的DNS和反向DNS,如果没有DNS,就需要配置各节点的/etc/hosts文件。
将所有节点的“{ip} {对应主机名}”加入到/etc/hosts文件中即可。
可以用hostname -f命令来查看主机名。
最后还需要配置网络文件:
打开网络配置文件:vi /etc/sysconfig/network
输入以下内容:
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME={主机名}
GATEWAY={网关地址}
2.5、 禁用SELinux
可以选择临时性和永久性的禁用。
临时性,使用命令:
setenforce 0
永久性,修改/etc/selinux/config文件
SELINUX=disabled
SELINUXTYPE=targeted
2.6、禁用iptables,使用以下命令
chkconfig iptables off
/etc/init.d/iptables stop
2.7、禁用PackageKit
在RHEL/CentOS中,编辑/etc/yum/pluginconf.d/refresh-packagekit.conf,进行如下修改
enabled=0
2.8、检查umask的值
集群的所有机器上,umask的值必须是022
可以在/etc/profile中设置
2.9、安装python26(集群所有机器都要安装)
下载以下的包:
python26:http://dl.fedoraproject.org/pub/epel/5/x86_64/python26-2.6.8-2.el5.x86_64.rpm
libffi.so.5()(64bit):http://dl.fedoraproject.org/pub/epel/5/x86_64/libffi-3.0.5-1.el5.x86_64.rpm
libpython2.6.so.1.0()(64bit):http://dl.fedoraproject.org/pub/epel/5/x86_64/python26-libs-2.6.8-2.el5.x86_64.rpm*
把这三个放在同一个目录下,进行安装
rpm -ivh *.rpm
rpm -ivh python26*
3、创建系统软件源
创建系统软件园系统apache server和createrepo软件包,如果没有需要安装。
3.1、下载ambari、HDP和HDP-Utils软件包
ambari:http://public-repo-1.hortonworks.com/ambari/centos5/ambari-1.2.5.17-centos5.tar.gz
HDP:http://s3.amazonaws.com/public-repo-1.hortonworks.com/HDP/centos5/HDP-1.3.2.0-centos5-rpm.tar.gz
HDP-Utils:http://s3.amazonaws.com/public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.16/repos/centos5/HDP-UTILS-1.1.0.16-centos5.tar.gz
3.2、建立ambari库
1)解压后,将(解压相对路径)
ambari-1.2.5.17-centos5\ambari\centos5\1.x\updates\1.2.5.17\noarch
ambari-1.2.5.17-centos5\ambari\centos5\1.x\updates\1.2.5.17\x86_64
等两个目录拷贝到本地库所在主机的/var/www/html/ambari路径下(注意不要拷贝repodata目录)
2)创建软件源
chmod -R ugo+rX /var/www/html/ambari
cd /var/www/html/ambari
createrepo .
3)创建/etc/yum.repos.d/ambari.repo文件并加入以下内容
[ambari-1.2.5.17]
name = Ambari
baseurl = http://${server_id}/ambari/
enabled=1
gpgcheck = 0
3.3、建立hdp-util库
1)解压,将(解压相对路径)HDP-UTILS-1.1.0.16-centos5\HDP-UTILS-1.1.0.16\repos\centos5\目录下,除了hdp-util.repo文件和repodata目录之外的所有文件盒目录拷贝到软件源服务器的/var/www/html/hdp-util路径下
2)创建软件源
chmod -R ugo+rX /var/www/html/hdp-util
cd /var/www/html/hdp-util
createrepo .
3)创建/etc/yum.repos.d/hdp-util.repo文件并加入以下内容
[HDP-UTILS-1.1.0.16]
name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16
baseurl=http://${server_ip}/hdp-util/
path=/
enabled=1
gpgcheck=0
3.4、建立HDP库
1)解压,将(解压相对路径)HDP-1.3.2.0-centos5-rpm\HDP\centos5\1.x\updates\1.3.2.0\目录下,除了hdp.repo文件和repodata目录之外的所有文件盒目录拷贝到软件源服务器的/var/www/html/hdp路径下
2)创建软件源
chmod -R ugo+rX /var/www/html/hdp
cd /var/www/html/hdp
createrepo .
3)注意不要创建相应的库描述文件,这个文件会在ambari安装ambari-agent的过程中自动创建
3.5、创建系统软件源
1)把系统安装光盘(或镜像文件)下Packages(centos)路径下的所有软件包拷贝到软件源服务器的/var/www/html/system路径下
2)创建软件源
chmod -R ugo+rX /var/www/html/hdp
cd /var/www/html/hdp
createrepo .
3)创建/etc/yum.repos.d/system.repo文件并加入以下内容
baseurl=http://${server_ip}/system/
path=/
enabled=1
gpgcheck=0
3.6、验证软件源
在浏览器中输入http://${server_ip}/$[ambari, hdp-util, system],如果三个源都正确显示,切生成了repodata目录,说明软件源创建正确。
3.6、复制软件源描述文件
将软件源服务器/etc/yum.repos.d/目录下的ambari.repo、hdp-util.repo、system.repo等三个文件拷贝到集群所有主机的/etc/yum.repos.d/目录下。
在各主机上运行命令 yum repolist,如果显示下面的文字,说明操作正确。
repo id repo name
ambari-1.2.5.17 Ambari
HDP-UTILS-1.1.0.16 Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16
system system
4、安装
4.1、安装ambari-server的二进制包
在ambari服务器上执行:
yum install ambari-server
4.2、修改/etc/ambari-server/conf/ambari.properties
1)下载http://public-repo-1.hortonworks.com/ARTIFACTS/jce_policy-6.zip文件,放在本地http服务器上(软件源服务器即可)。
将 jce_policy.url 属性值设为这个文件的本地地址。
例如,将文件放在了apache server的/var/www/html/xx/jce_policy-6.zip路径的话,地址是:http://{server_ip}/xx/jce_policy-6.zip
2)自己做一个名字叫“public-hostname”的文件,文件内容与/etc/hosts相同,要包含集群内所有主机的主机名和ip地址对,放到本地http服务器上。
将server.fqdn.service.url 属性值设为文件的本地地址。
3)到oracle网站下载一个jdk-6u31-linux-x64.bin 安装文件,放在本地http服务器上。
将jdk.url 属性值改为文件的本地地址。
4)在文件末尾加上:security.passwords.encryption.enabled=false
4.2、安装ambari-server
ambari-server setup -j ${JAVA_HOME}
注意:这个JAVA_HOME需要在集群所有主机上使用同一个路径
4.3、配置ambari-server,使之能够找到本地HDP库
vi /var/lib/ambari-server/resources/stacks/HDPLocal/${version}/repos/repoinfo.xml
这个文件中有很多操作系统条目,找到你的系统所在的条目,将baseurl的值改为hdp库的地址。
注:根据你自己的版本号变更${version}的值
4.4、启停ambari-server
ambari-server start
ambari-server stop
4.5、登录ambari-server
默认用户名/密码:admin/admin
如果出现了登录界面并能登录成功,说明安装成功了。
5、安装HDP
1、安装步骤如下:
1)环境界面,敲入集群名:
2)选择安装包,我们选择1.3.0
3)安装选项:
填写要加入集群的机器,每行写一个,可以使用表达式,如:gic20[6-31],即使gic206-gic231之间的所有机器
选择ssh私钥文件。选择之前做ssh无密码登陆时创建的私钥,通常名字为id_rsa。
SSH user,我们使用root
高级选项中,我们选择本地软件库而不是联网;填写主机上64位JDK的地址。
4)确认主机:
如果成功可能会抛出几个异常,包括:1)有些用户不应该存在;2)有些目录不应该存在;3)有的服务不应该启动;4)有的服务需要启动。按照提示,做相应的操作。
5)选择要安装的服务。
6)指定Master
NameNode和SecondaryNameNode要放在一起
NameNode和JobTracker要放在一起
否则JobTracker和SecondaryNameNode会找不到NameNode,这个问题还没有解决,谁解决了请告诉一下解决方法。(
[email protected])
7)选择slave和客户端
8)定义服务参数
9)review:检查一下设置,下一步就是部署了。
10)安装、启动和测试
6、注意事项:
6.1、ambari库描述文件的名称必须是 ambari.repo
6.2、日志查看
tail -300f /var/log/ambari-server/ambari-server.log
tail -300f /var/log/ambari-agent/ambari-agent.log
6.3、如果失败,可以使用下面的命令重新来过。
手工在所有集群节点上执行:ambari-agent stop
在主节点上执行:ambari-server stop ; ambari-server reset; ambari-server start,即可重新来过。
有时候ambari-server启动时ambari-agent已经在之前安装完毕,会卡在集群安装的确认主机(第四步),需要手工将集群其他节点的agent启动。
6.4、安装过程中如果失败,最好清空一下浏览器的历史记录,有时候即使ambari-server reset了,登录浏览器后也会直接跑到失败那一步。
6.5、Hadoop安装过程中提示hdp库id找不到
下面两个位置的库id要保持一致
1)/var/lib/ambari-server/resources/stacks/HDPLocal/${version}/repos/repoinfo.xml文件中的“repoid”属性值
2)安装集群第二步选择的版本号
6.6、安装时设置的jdk路径,需要对创建的所有ambari用户具有可执行权限
6.7、最好找一个干净的环境来安装,本人用之前装过Cloudera的机器来装,真是费了九牛二虎之力啊...
7、ambari卸载脚本
#
1
.删除hdp.repo和hdp-
util.repo
cd /etc/yum.repos.d/ rm -rf hdp* rm -rf HDP* rm -rf ambari*
#2.删除安装包
#用yum list installed | grep HDP来检查安装的ambari的包
yum remove -y ambari-server.noarch
yum remove -y ambari-agent.x86_64
yum remove -y sqoop.noarch
yum remove -y lzo-devel.x86_64
yum remove -y hadoop-libhdfs.x86_64
yum remove -y rrdtool.x86_64
yum remove -y hbase.noarch
yum remove -y pig.noarch
yum remove -y lzo.x86_64
yum remove -y ambari-log4j.noarch
yum remove -y oozie.noarch
yum remove -y oozie-client.noarch
yum remove -y gweb.noarch
yum remove -y snappy-devel.x86_64
yum remove -y hcatalog.noarch
yum remove -y python-rrdtool.x86_64
yum remove -y nagios.x86_64
yum remove -y webhcat-tar-pig.noarch
yum remove -y snappy.x86_64
yum remove -y libconfuse.x86_64
yum remove -y mysql.x86_64
yum remove -y webhcat-tar-hive.noarch
yum remove -y ganglia-gmetad.x86_64
yum remove -y extjs.noarch
yum remove -y hive.noarch
yum remove -y hadoop-lzo.x86_64
yum remove -y hadoop-lzo-native.x86_64
yum remove -y hadoop-native.x86_64
yum remove -y hadoop-pipes.x86_64
yum remove -y nagios-plugins.x86_64
yum remove -y hadoop.x86_64
yum remove -y zookeeper.noarch
yum remove -y mysql-libs.x86_64
yum remove -y mysql-connector-java.noarch
yum remove -y hadoop-sbin.x86_64
yum remove -y ganglia-gmond.x86_64
yum remove -y libganglia.x86_64
yum remove -y perl-rrdtool.x86_64
yum remove -y epel-release.noarch
yum remove -y compat-readline5*
yum remove -y fping.x86_64
yum remove -y perl-Crypt-DES.x86_64
#3.删除用户
userdel nagios
userdel hive
userdel ambari-qa
userdel hbase
userdel oozie
userdel hcat
userdel mapred
userdel hdfs
userdel rrdcached
userdel zookeeper
userdel mysql
userdel sqoop
userdel puppet
#4.删除文件夹
rm -rf /hadoop
rm -rf /etc/hadoop
rm -rf /etc/hbase
rm -rf /etc/hcatalog
rm -rf /etc/hive
rm -rf /etc/ganglia
rm -rf /etc/nagios
rm -rf /etc/oozie
rm -rf /etc/sqoop
rm -rf /etc/zookeeper
rm -rf /etc/hue
rm -rf /var/run/hadoop
rm -rf /var/run/hbase
rm -rf /var/run/hive
rm -rf /var/run/ganglia
rm -rf /var/run/nagios
rm -rf /var/run/oozie
rm -rf /var/run/zookeeper
rm -rf /var/log/hadoop
rm -rf /var/log/hbase
rm -rf /var/log/hive
rm -rf /var/log/nagios
rm -rf /var/log/oozie
rm -rf /var/log/zookeeper
rm -rf /usr/lib/hadoop
rm -rf /usr/lib/hbase
rm -rf /usr/lib/hcatalog
rm -rf /usr/lib/hive
rm -rf /usr/lib/oozie
rm -rf /usr/lib/sqoop
rm -rf /usr/lib/zookeeper
rm -rf /var/lib/hue
rm -rf /var/lib/hive
rm -rf /var/lib/ganglia rm -rf /var/lib/oozie rm -rf /var/lib/zookeeper rm -rf /var/tmp/oozie rm -rf /tmp/hive rm -rf /tmp/nagios rm -rf /tmp/ambari-qa rm -rf /tmp/sqoop-ambari-qa rm -rf /var/nagios rm -rf /hadoop/oozie rm -rf /hadoop/zookeeper rm -rf /hadoop/mapred rm -rf /hadoop/hdfs rm -rf /tmp/hadoop-hive rm -rf /tmp/hadoop-nagios rm -rf /tmp/hadoop-hcat rm -rf /tmp/hadoop-ambari-qa rm -rf /tmp/hsperfdata_hbase rm -rf /tmp/hsperfdata_hive rm -rf /tmp/hsperfdata_nagios rm -rf /tmp/hsperfdata_oozie rm -rf /tmp/hsperfdata_zookeeper rm -rf /tmp/hsperfdata_mapred rm -rf /tmp/hsperfdata_hdfs rm -rf /tmp/hsperfdata_hcat rm -rf /tmp/hsperfdata_ambari-qa #5.删除ambari包 #采用这句命令来检查yum list installed | grep ambari yum remove -y ambari-*
yum remove -y postgresql rm -rf /etc/yum.repos.d/ambari*
rm -rf /var/lib/ambari*
rm -rf /var/log/ambari*
rm -rf /etc/ambari*
rm -rf /usr/lib/ambari*
#6.删除快捷方式
cd /etc/alternatives
rm -rf hadoop-conf
rm -rf hbase-conf
rm -rf hive-conf
rm -rf hadoop-etc
rm -rf zookeeper-conf
rm -rf hbase-conf
rm -rf hadoop-log
rm -rf hadoop-lib
rm -rf hadoop-default
rm -rf oozie-conf
rm -rf hcatalog-conf
rm -rf hadoop-man
rm -rf sqoop-conf