系统:三台CentOS 6.5虚拟机;
需下载软件:ambari-1.4.4.23-centos6.tar.gz、HDP-2.0.6.1-centos6-rpm.tar.gz、HDP-UTILS-1.1.0.16-centos6.tar.gz;(为了保证离线安装,所以这里我们配置都是使用本地http源)
可以从这个网址下载:http://s3.amazonaws.com/public-repo-1.hortonworks.com/index.html#, 不过这个网址打开有点慢。另外需要注意一点的是在下载ambari的时候它是有自己配对的HDP的,最好是要一致,比如上面下载的ambari和HDP就是配对的。
1. 首先说配置吧(配置好了,其他都是浮云)
假设我们配置的ip和机器名的映射分别是:
192.168.0.101 vm1.localdomain vm1
192.168.0.102 vm2.localdomain vm2
192.168.0.103 vm3.localdomain vm3
配置domain name是因为hdp好像需要这个,不配置这个的话,在ambari一键安装hdp的时候会有warning。
1.1首先按照前面一篇 http://www.linuxidc.com/Linux/2014-03/98712.htm 装好系统先,同时配置Centos的本地http源。
1.2 配置ip和hostname:以vm1为例(以下未做说明,都是以vm1为例):
修改/etc/hosts:
192.168.0.101 vm1.localdomain vm1
192.168.0.102 vm2.localdomain vm2
192.168.0.103 vm3.localdomain vm3
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
修改/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=”eth0″
BOOTPROTO=”static”
IPADDR=”192.168.0.101″
NETMAST=”255.255.255.0″
GATEWAY=”192.168.0.1″
DNS1=”192.168.0.101″
HWADDR=”00:0C:29:5E:9D:9E”
IPV6INIT=”no”
NM_CONTROLLED=”yes”
ONBOOT=”yes”
TYPE=”Ethernet”
UUID=”41b2b021-ba34-4238-b1ce-8a9cc6b5e187″
这里的gateway配置为 192.168.0.1其实是错的,因为虚拟机的网管是192.168.0.2,这里配置为.1是因为需要保证没有连到外网哈(其实就是为了测试本地http源而已);
修改 /etc/sysconfig/network:
NETWORKING=yes
HOSTNAME=vm1.localdomain
GATEWAY=192.168.0.1
其他vm2、vm3参考此配置进行配置。
1.3 配置selinux、iptables:
修改/etc/selinux/config :‘
SELINUX=disabled
命令行执行: chkconfig iptables off ;
因为修改了机器名,所以最后重启下。
1.4 上传下载的3个.tar.gz文件到vm1的/var/www/html文件夹,然后解压缩,会得到下面的文件夹:
centos是我们本地的系统源。
1.5 配置ambari、hdp、hdp-util的repo。
首先复制ambari\centos6\1.x\updates\1.4.4.23\ambari.repo 、HDP\centos6\2.x\updates\2.0.6.1\hdp.repo、HDP-UTILS-1.1.0.16\repos\centos6\hdp-util.repo文件到/etc/yum.repo.d/文件夹下面,如下:
其中,HDP.repo是ambari配置的时候自动生成的,可以不用管。
修改ambari.repo:
[Updates-ambari-1.4.4.23]
name=ambari-1.4.4.23 – Updates
baseurl=http://vm1.localdomain/ambari/centos6/1.x/updates/1.4.4.23
gpgcheck=0
gpgkey=http://vm1.localdomain/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
注意baseurl的配置,可以拷贝url到浏览器,一般可以看到下面的内容:
修改CentOS-Base.repo、CentOS-Debuginfo.repo、CentOS-Media.repo,把其中的enabled设置为0,如果没有这个属性则添加一个,比如CentOS-Base.repo:
[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
#released updates
其中的enabled=0 就需要自己添加。
修改hdp.repo:
[Updates-HDP-2.x]
name=Hortonworks Data Platform HDP-2.x – Updates
baseurl=http://vm1.localdomain/HDP/centos6/2.x/updates/2.0.6.1
gpgcheck=0
gpgkey=http://vm1.localdomain/HDP/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
修改hdp-util.repo:
然后,使用yum clean all ,接着试着找找ambari、hdp、hdp-util的安装包:yum search ambari-agent、yum search Oozie、yum search ganglia,如果可以找到,那么就说明配置成功了。
1.5 配置ssh:
生成ssh key: ssh-keygen -t rsa ,然后三次Enter即可;
复制key: ssh-copy-id -i ~/.ssh/id_rsa.pub vm1 、ssh-copy-id -i ~/.ssh/id_rsa.pub vm2、ssh-copy-id -i ~/.ssh/id_rsa.pub vm3,分别输入密码即可(默认所有操作都使用root用户)
验证: ssh vm3 ,无密码登录即可。
1.6 拷贝http源到vm2、vm3;
scp /etc/yum.repos.d/* root@vm2:/etc/yum.repos.d/
scp /etc/yum.repos.d/* root@vm3:/etc/yum.repos.d/
进入vm2、vm3 ,运行yum clean all. 同时安装unzip,在HDP有个Service需要解压,minmal的版本好像没有这个unzip。
2. 安装ambari:
2.1 安装ntp:
进入vm1, yum install ntp, 然后修改/etc/ntp.conf:
#server 0.CentOS.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 8
运行 : chkconfig ntpd on;
运行:watch ntpq -p ,可以看到下面的界面:
进入vm2、vm3,yum install ntp ,修改/etc/ntp.conf:
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server vm1
server 127.127.1.0
fudge 127.127.1.0 stratum 8
2.2 安装ambari:
进入vm1,运行 : yum install ambari-server;
进入vm2、vm3,运行:yum install ambari-agent;(这里建议提前安装ambari-agent)
2.3 安装ambari-server:
进入vm1,运行:ambari-server setup -j /opt/jdk1.7.0_25 -s 。 -j参数是jdk的路径。-s参数表示按照默认安装。额,顺便说下,需要提前在三台vm上安装jdk。
2.4 运行ambari-server:
进入vm1,运行:ambari-server start
3. 安装HDP:
3.1 如果是windows本地网页访问虚拟机,需配置hosts映射,修改C:\Windows\System32\drivers\etc\hosts:
192.168.0.101 vm1.localdomain
192.168.0.102 vm2.localdomain
192.168.0.103 vm3.localdomain
浏览器访问http:vm1.localdomain:8080,即可看到Ambari的登录界面,输入用户名密码admin/admin即可登录:
第一项是配置集群的名称,这个可以自己命名了。
3.2 配置stack(此配置至关重要):
选择hdp2.0.6 ;同时修改下面的Repositories源,去掉其中的两个,保留Centos6的,这里特别注意需要修改里面的URL,其URL为:http://vm1.localdomain/HDP/centos6/2.x/updates/2.0.6.1/。 这个也就是前面的hdp.repo文件中的baseurl,同时这个url也是安装hdp时在/etc/yum.repo.d/下面产生的HDP.repo文件的依据。
3.3 installation 选项:
hosts输入:
vm1.localdomain
vm2.localdomain
vm3.localdomain
primary key ,输入 vm1里面的~/.ssh/id_rsa里面的内容即可。
然后就是验证和注册了。
验证和注册如何出问题,可以参考这里解决:http://blog.csdn.net/fansy1990/article/details/21658767。
3.4 选择服务:
这里建议全部选择吧。
3.5 指定masters:
这里指定master,需要统一规划,安装每个机器的资源进行配置,不过这里是虚拟机安装的,可以尽量平均分配下(每个vm才1G内存,哎,深感内存少呀)。
3.6 指定salve和client,这个和指定master一样的道理。
3.7 配置服务,这个需要特别注意了:
首先红色的肯定是需要配置的,不过也只是配置数据库的密码而已,这里建议都统一配置记录下来,以防后面 忘记了。
其次,在配置其他服务的时候也是需要每个参数去留心看看的,比如,由于我的才1G内存的虚拟机,所以在有内存参数配置的,比如默认的是1G或者2G,我都改为256M了,同时我只有一个数据节点,所以dfs.replication配置为了1,。等等这些配置,都需要去分析,如果是实际环境的话。
最后重要的一点是Install、start、test了。这里按照我前面的配置,最后在HBase测试的时候出了点问题,问题如下:
err: /Stage[2]/Hdp-hbase::Hbase::Service_check/Exec[/tmp/hbaseSmokeVerify.sh]/returns: change from notrun to 0 failed: su – ambari-qa -c ‘/tmp/hbaseSmokeVerify.sh /etc/hbase/conf ida8c06700_date142414’ returned 1 instead of one of [0] at /var/lib/ambari-agent/puppet/modules/hdp-hbase/manifests/hbase/service_check.pp:77
notice: /Stage[2]/Hdp-hbase::Hbase::Service_check/Hdp-Hadoop::Exec-hadoop[hbase::service_check::test]/Hdp::Exec[hadoop –config /etc/hadoop/conf fs -test -e /apps/hbase/data/data/default/ambarismoketest]/Anchor[hdp::exec::hadoop –config /etc/hadoop/conf fs -test -e /apps/hbase/data/data/default/ambarismoketest::begin]: Dependency Exec[/tmp/hbaseSmokeVerify.sh] has failures: true
notice: /Stage[2]/Hdp-hbase::Hbase::Service_check/Hdp-hadoop::Exec-hadoop[hbase::service_check::test]/Hdp::Exec[hadoop –config /etc/hadoop/conf fs -test -e /apps/hbase/data/data/default/ambarismoketest]/Exec[hadoop –config /etc/hadoop/conf fs -test -e /apps/hbase/data/data/default/ambarismoketest]: Dependency Exec[/tmp/hbaseSmokeVerify.sh] has failures: true
notice: /Stage[2]/Hdp-hbase::Hbase::Service_check/Hdp-hadoop::Exec-hadoop[hbase::service_check::test]/Hdp::Exec[hadoop –config /etc/hadoop/conf fs -test -e /apps/hbase/data/data/default/ambarismoketest]/Anchor[hdp::exec::hadoop –config /etc/hadoop/conf fs -test -e /apps/hbase/data/data/default/ambarismoketest::end]: Dependency Exec[/tmp/hbaseSmokeVerify.sh] has failures: true
notice: /Stage[2]/Hdp-hbase::Hbase::Service_check/Anchor[hdp-hbase::hbase::service_check::end]: Dependency Exec[/tmp/hbaseSmokeVerify.sh] has failures: true
notice: Finished catalog run in 158.31 seconds
不过这个大概没啥影响吧。这个没深究,因为在安装好了之后,我启动了下HBase,发现没啥问题。
不过,说句实话,如果真是虚拟机玩的话,内存一定要够呀。三台虚拟机开着,在安装的时候,内存一直保持3.7、8的样子,cpu很多时候都去到了90%+,不能进行其他操作。
4. 总结
Ambari安装配置HDP,确实不是很难,如果前期准备都ok的话,那就基本是万事大吉了,后面也只是一些小问题了。最后,附上几张图吧。
你可以看到这个界面很多红色的,因为我就开了一个vm1,而且还把所有的服务都关闭了。不然,我连写这篇博客估计都够呛。
更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14