![在此处输入图像描述] [1]这个问题可能看起来很明显,但由于hadoop集群上主机文件的配置错误,我已多次面对这个问题。
任何人都可以描述如何为hadoop和类似环境使用设置主机文件和其他相关网络配置(如cloudera)。
特别是当我必须添加主机名和FQDN
时更新
这是来自主机名cdh4hdm的一台机器的主机文件有hadoop Master的角色
127.0.0.1 cdh4hdm localhost
#127.0.1.1 cdh4hdm
# The following lines are desirable for IPv6 capable hosts
172.26.43.40 cdh4hdm.imp.co.in kdc1
172.26.43.41 cdh4hbm.imp.co.in
172.26.43.42 cdh4s1.imp.co.in
172.26.43.43 cdh4s2.imp.co.in
172.26.43.44 cdh4s3.imp.co.in
172.26.43.45 cdh4s4.imp.co.in
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
请参阅附图
在群集中,一些节点正在获取FQDN,而一些节点正在获取主机名。
主机名IP也不正确,显示127.0.0.1而不是主机IP
请建议
答案 0 :(得分:5)
UBUNTU
主机文件和Hadoop集群的其他配置
为所有群集计算机提供主机名,为此,请在/ etc / hostname文件中添加主机名
hostname-of-machine
在所有主机上,hosts文件应如下所示:
<强>主机强>
127.0.0.1 localhost
#127.0.1.1 localhost
<ip of host> FQDN hostname other_name
172.26.43.10 cdh4hdm.domain.com cdh4hdm kdc1
172.26.43.11 cdh4hbm.domain.com cdh4hbm
172.26.43.12 cdh4s1.domain.com cdh4s1
172.26.43.13 cdh4s2.domain.com cdh4s2
172.26.43.14 cdh4s3.domain.com cdh4s3
172.26.43.15 cdh4s4.domain.com cdh4s4
注意:请务必注释第127.0.1.1行本地主机,它可能会在zookeeper和群集中产生问题。
在/etc/resolv.conf中添加DNS服务器IP
<强> resolve.conf 强>
search domain.com
nameserver 10.0.1.1
验证配置检查主机文件,您应该能够通过主机名
ping所有计算机要检查所有计算机上的主机名和FQDN,请运行以下命令:
hostname //should return the hostname
hostname -f //Fully Qualified Hostname
hostname -d //Domain name
除主机名外,RHEL的所有命令都相同。
答案 1 :(得分:3)
如果你的意思是/etc/hosts
文件,那么这就是我在hadoop集群中设置它的方式:
127.0.0.1 localhost
192.168.0.5 master
192.168.0.6 slave1
192.168.0.7 slave2
192.168.0.18 slave3
192.168.0.3 slave4
192.168.0.4 slave5 nameOfCurrentMachine
,其中nameOfCurrentMachine
是设置此文件的计算机,用作slave5
。
有人说应该删除第一行,但我没有遇到任何问题,也没有尝试删除它。
然后,主节点中的$HADOOP_CONF_DIR/masters
文件应为:
master
并且主节点中的$HADOOP_CONF_DIR/slaves
文件应为:
slave1
slave2
slave3
slave4
slave5
在每个其他节点中,我只是将这两个文件设置为仅包含:
localhost
您还应该确保在没有密码的情况下可以从主服务器ssh到其他每个节点(使用其名称,而不是其IP)。 This post描述了如何实现这一目标。
答案 2 :(得分:-1)
将奴隶主机文件保留为
127.0.0.1 localhost
将主主机文件保留为
private ip master
private ip slave1
private ip slave2