Hadoop Datanode在错误的界面上启动

时间:2015-10-20 14:35:15

标签: java hadoop mapreduce cloudera network-interface

我们为hadoop集群使用了2个接口。私人道德-1和公众。看起来当hadoop datanode启动时,它会选择公共IP地址而不是私有IP地址。当我查看hadoop-cmf-hdfs-DATANODE-hostname.log.out时,它会显示

STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = hostname.public.net/208.x.x.x

而应该说

STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = hostname-eth1.private.net/192.168.x.x

2 个答案:

答案 0 :(得分:1)

hdfs-site.xml中有一个设置,它可以控制数据节点用作其IP地址的接口。

dfs.datanode.dns.interface =数据节点应从中报告其IP地址的网络接口的名称。

这被设置为“默认”。如果要使用eth1,请在hdfs-site.xml中将此属性设置为:

<property>
    <name>dfs.datanode.dns.interface</name>
    <value>eth1</value>
  </property>

引用“Hadoop The Definitive Guide”一书:

There is also a setting for controlling which network interfaces the datanodes use as their IP addresses (for HTTP and RPC servers). The relevant property is dfs.datanode.dns.interface, which is set to default to use the default network interface. You can set this explicitly to report the address of a particular interface (eth0, for example).

答案 1 :(得分:0)

您可以尝试引用apache web site引用的此属性吗? ( 连接到其他数据节点进行数据传输时,数据节点是否应使用datanode主机名。

<property>
  <name>dfs.datanode.use.datanode.hostname</name>
  <value>true</value>
  <description>Whether datanodes should use datanode hostnames when
    connecting to other datanodes for data transfer.
  </description>
</property>

根据hdfs properties检查dfs.datanode.address等其他datanode属性,您可以找到解决方案

还有一件事:检查主机文件中的IP /域名映射。