2014-03-05 36 views
3

![1]这个问题可能看起来很明显,但由于hadoop集群上主机文件配置错误,我经常遇到它。如何为Hadoop生态系统配置hosts文件

任何人都可以描述如何为hadoop和类似的环境使用(如cloudera)设置主机文件和其他相关网络配置。

特别是当我必须将这两个主机名和FQDN

更新

下面是从主机名cdh4hdm机器之一的主机文件有Hadoop的法师角色

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

你的意思是'的/ etc/hosts'文件? – vefthym

+0

@vefthym请参阅更新的问题与详细信息,如果您需要任何其他详细信息,请随时问 –

回答

2

如果你指的是/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 

你也应该m确保你可以从主人ssh到其他每个节点(使用它的名字,而不是它的IP)没有密码。 This post描述如何实现这一点。

+0

当我只使用主机名时,它解决了问题。 FQDN呢? –

+0

我从来没有尝试过别的东西,而不是我在这里描述的东西。你指的是哪个部分?要'nameOfCurrentMachine',还是IP? – vefthym

+0

我对所有节点都有FQDN,但在集群上有一些节点只与主机名相关,而其他节点是主机的FQDN –

4

对于UBUNTU

Hosts文件和其他配置的Hadoop集群

提供主机名的集群机器,但这样做在/ etc /主机文件中添加主机名

hostname-of-machine 

在所有主机上,hosts文件应该是这样的:

ho STS

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本地主机可能在饲养员和集群创造的问题。

添加DNS服务器的IP /etc/resolv.conf中

resolve.conf

search domain.com 
nameserver 10.0.1.1 

验证配置检查HOSTFILE和你应该能够使用主机名

来ping所有的机器

要检查所有机器上的主机名和FQDN,请运行以下命令:

hostname  //should return the hostname 
hostname -f  //Fully Qualified Hostname 
hostname -d  //Domain name 

除了主机名外,RHEL的所有命令都是相同的。

Source1Source2

-1

保持奴隶hosts文件,

127.0.0.1 localhost 

保持主宿主文件

private ip master 
private ip slave1 
private ip slave2