Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取以下错误";Datanode拒绝与namenode的通信;在配置hadoop 0.23.8时_Hadoop_Hdfs_Microsoft Distributed File System - Fatal编程技术网

获取以下错误";Datanode拒绝与namenode的通信;在配置hadoop 0.23.8时

获取以下错误";Datanode拒绝与namenode的通信;在配置hadoop 0.23.8时,hadoop,hdfs,microsoft-distributed-file-system,Hadoop,Hdfs,Microsoft Distributed File System,我正在尝试在我的macbook上配置hadoop 0.23.8,运行时出现以下异常 org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode: 192.168.1.13:50010 at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDat

我正在尝试在我的macbook上配置hadoop 0.23.8,运行时出现以下异常

org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode: 192.168.1.13:50010
at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:549)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:2548)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:784)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:394)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1571)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1567)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1262)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1565)
我的core-site.xml如下所示

<configuration>
<property>
<name>dfs.federation.nameservices</name>
<value>ns1</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>192.168.1.13:54310</value>
</property>

<property>
<name>dfs.namenode.http-address.ns1</name>
<value>192.168.1.13:50070</value>
</property>

<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>192.168.1.13:50090</value>
</property>
</configuration>

dfs.federation.nameservices
ns1
dfs.namenode.rpc-address.ns1
192.168.1.13:54310
dfs.namenode.http-address.ns1
192.168.1.13:50070
dfs.namenode.secondary.http-address.ns1
192.168.1.13:50090

有没有关于我做错了什么的想法?

在我看来,这似乎是一个名称解析问题。可能的原因:

Machine is listed in the file defined by dfs.hosts.exclude

dfs.hosts is used and the machine is not listed within that file
还要确保主机文件中列出了机器的IP+主机名

我遇到了这个问题

core site.xml中的早期配置如下所示

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:12345</value>
</property>

fs.default.name
hdfs://localhost:12345
后来我用我的主机名(PC名)修改了本地主机名


fs.default.name
hdfs://cnu:12345

这对我有用

仅供参考。我也遇到了同样的问题,我认识到,我的奴隶的主机名有一个输入错误。反之亦然,节点本身可能有错误的主机名。

我在Hadoop 2.6.0中遇到了同样的问题,我的解决方案与Tariq的答案不同

我无法在/etc/hosts中列出IP主机映射,因为我使用DHCP动态设置IP

问题在于,我的DNS不允许反向DNS查找(即查找给定IP的主机名),而HDFS在默认情况下,每当datanode尝试向namenode注册时,都会使用反向DNS查找。幸运的是,可以通过在hdfs-site.xml中将此属性“dfs.namenode.datanode.registration.ip hostname check”设置为false来禁用此行为

如何知道您的DNS不允许反向查找?ubuntu中的答案是使用命令“host”。如果可以解析主机名,则启用反向查找。如果失败,则禁用反向查找

参考资料: 1.
2.

在2.6.0中遇到了同样的问题,shamouda的答案解决了这个问题(我根本没有使用
dfs.hosts
,所以这不是答案。我添加了

<property>
  <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
  <value>false</value>
</property>

dfs.namenode.datanode.registration.ip-hostname-check
假的

hdfs site.xml,这就足以解决问题。

Hi tariq,我在windows版本2.5.2中使用hadoop群集。当dn在windows中有两个不同的用户名时,我无法将其与nn连接起来!它显示错误datanode。datanode:块池BP-1412802884-172.16.104.131-1426754368865的初始化失败(Datanode Uuid null)对*Datanode的服务拒绝与namenode通信,因为无法解析主机名(ip=***,主机名=**):DatanodeRegistration(0.0.0.0,DataNodeUID=c724b3ec-0890-440a-aeb5-12687DF4AB,infoPort=50075,ipcPort=50020,torageInfo=lv=-55;cid=cid-f00ff213-1f54-4076-bc4f-e849ed357a98;nsid=3 32255981;c=0)
<property>
  <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
  <value>false</value>
</property>