在你的每一台主机上都要安装以下软件:
(selinux上自带的python有重大bug,会导致安装失败,请先更新其上的python)
yum 和 rpm (RHEL/CentOS/Oracle Linux)注意
此处的主机名不符合完全限定域名(fully qualified domain name,FQDN)的规范,只是为了展示方便。
安装ambari之前,为了保证ambari各项服务的正常运行,根据操作系统的不同,需要确定一些已经安装的软件的版本,以下列出的软件版本必须符合要求。即:如果现有的系统上有以下软件,版本必须与下面列出的版本完全一致,如果没有的话安装程序会自行安装,就没有问题了。
必须运行ntpd(时钟同步)服务
# vi /etc/sysconfig/network
例如:
NETWORKING=yes
HOSTNAME=master
注意
Ambari配置集群信息的时候是通过全限定主机名来确定集群中的机器信息的,所以必须确保主机名无误
注意
在每一台机器的hosts文件上都要做配置
# vi /etc/hosts
192.168.1.33 master
192.168.1.34 slave1
192.168.1.35 slave2
在master上执行以下命令
# ssh-keygen -t rsa
然后一路回车即可,此操作会在/root生成一个.ssh隐藏文件夹,
文件夹中有两个文件:id_rsa(私钥)和id_rsa.pub(公钥)
检查.ssh文件夹的权限是否为700和文件夹中的文件的权限是否为600
如果不是请执行以下命令
# chmod700~/.ssh
# chmod600~/.ssh/authorized_keys
配置本地的免密码登录
# cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
执行以下命令以配置其他节点的免密码登录
注意
首先其他机器上/root下有.ssh文件夹
# scp~/.ssh/authorized_keysslave1:/root/.ssh/
# scp~/.ssh/authorized_keysslave2:/root/.ssh/
在master上测试连接:
# shh slave1
# shh slave2
成功即可进行下一步,不成功删除.ssh文件夹及其所含文件即可
查看selinux状态
# /usr/sbin/sestatus –v
临时关闭
# setenforce 0
永久关闭SELinux
# vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
重启生效,重启命令为:
# reboot
# chkconfig iptables off service iptables stop
查看防火墙状态
# chkconfig –list|grep iptables
提示:Linux下的其它服务都可以用以上命令执行开启和关闭操作
重启生效,重启命令为:
# rebort
#wgethttp://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.5.1/ambari.repo
# yumrepolist
如果出现以下类似信息即为安装正确
1. repo id repo name
2. AMBARI-1.x | Ambari 1.x
# yuminstallambari-server
注意
由于资源地址在国外,网速不好的情况下时间会很长,也有可能会失败,
若失败多为网速原因,请多次重试
设置的时候需要设置jdk,会在线下载。
如果网络环境较好,可以尝试去oracle官网在线下载,否则可以自行下载并拷贝到/var/lib/ambari-server/resources/下即可
到时候Ambari的安装程序会自动进行安装
# ambari-serversetup
出现选择选项时按默认处理即可
注意
Ambari默认使用的是postgresql数据库,在init postgresql的时候,可能会报错误信息:(以下只是错误中的一种)
psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket “/tmp/.s.PGSQL.5432”?
出现这个错误的时候,要去查看pgsql的操作log信息,pgsql默认安装在
/var/lib/pgsql
这里就有安装的log文件pgstartup.log
通过日志我们就能知道真正的错误信息是什么了,就能对症下药的。
提示:如果日志里说5432端口被占用,使用查看命令
# netstat -apn|grep 5432
并没有看到有程序占用时,可能的原因是某个程序确实使用过5432端口但是又释放了,并没有完全释放,所以提示被占用且你也找不到占用程序在哪,一个笨办法就是重启。