Ambari 2.5.1.0安装——踩坑实录2(Ambari S
在 踩坑实录1 中我们已经创建好了三台虚拟机,并分别为其安装了CentOS 6.5的操作系统,这篇文章将告诉你在安装Ambari Server之前需要做哪些前戏工作。
目前我们已经为下面三台虚拟机配置好了网络,安装了yum,可以一台虚拟机可以Ping通其他两台机器。我们为三台虚拟机分别设置了hostname,分别是:
master.example.com (用来安装Ambari Server以及以后作为NameNode节点,主节点)
slaver1.example.com (用来安装Ambari Agent以及以后作为DataNode节点)
slaver2.example.com (用来安装Ambari Agent)
在进入高潮之前,我们需要来点儿前戏。前戏步骤如下:
-
Hostname检查(三台虚拟机都要做):
- 确保hostname的配置符合Fully Qualified Domain Name (FQDN)规则,即hostname.domainname,如何修改domainname?
1.1. 修改/etc/sysctl.conf : kernel.domainname=example.com
1.2. 修改/etc/hosts 增加域名 如:master.example.com
1.3. 修改/etc/sysconfig/network 增加域名 如:master.example.com
1.4. reboot 重启系统。- 使用 hostname 和 hostname -f 检查两个结果是否一致,如果不一致,问度娘怎么办
使用 cat /etc/hosts 检查是否将所有机器的hostname都包括了,并且包含了:127.0.0.1 以及 ::1的配置信息。这两条一定要有,一定要有,一定要有!!!
image.png
-
免密“互通”,这里其实只需要从master ssh到各个slaver免密即可。
- 为了简单,我们首先关闭了防火墙(每个虚拟机都做)
vi /etc/selinux/config
修改SELINUX=disabled- 允许使用公钥访问(每个虚拟机都做)
vi /etc/ssh/sshd_config
找到以下内容,并去掉注释符“#”
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys- 主机(master虚拟机)执行命令生成公钥和私钥,再把公钥拷贝到需要免密登录的slaver上。
3.1. ssh-keygen -t rsa -P '' (在master上/root/.ssh目录下生成公钥和私钥对)
3.2. scp /root/.ssh/id*pub root@slaver2:/root/.ssh (在master上copy文件到slaver上)
3.3. cat id*pub >> au*keys (在slaver上将id文件的内容复制到authorized_keys文件中)
如果上述步骤中没有.ssh或者没有authorized_keys文件,可以自建。- 在master上使用 ssh 命令测试是否可以免密登录其他slaver机器,第一次可能需要密码,后面就不需要了。
坑来了!除了需要ssh免密登录各个slaver机器,还需要ssh免密登录自己,即在master机器上使用ssh命令,如:ssh master.example.com 也必须是免密的,免密的,免密的!!! 否则安装完Ambari Server,在配置Cluster,步骤做到"Confirm Hosts"的时候,会出现“These are the hosts that have registered with the server, but do not appear in the list of hosts that you are adding.” 的问题!如图:
image.png详细failed信息如下:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SSH command execution finished
host=localhost.localdomain, exitcode=255
ERROR: Bootstrap of host localhost.localdomain fails because previous action finished with non-zero exit code (255)
ERROR MESSAGE: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
STDOUT:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
-
其他前戏工作
- 安装NTPD
- 设置Transparent Huge Pages 为关闭状态
修改/etc/rc.local,增加下面代码
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
至此,重要的前戏工作都做完了,为了达到高潮,付出点儿时间和精力都是值得的。后面一篇开始正式进入高潮部分,我将告诉你如何安装Ambari Server以及如何配置Cluster,更重要的是踩了多少坑!:)