我在Ubuntu 12.04上使用8个核心的两个节点设置hadoop 2.6集群。 sbin/start-dfs.sh
和sbin/start-yarn.sh
都成功了。我可以在主节点上的jps
之后看到以下内容。
22437 DataNode
22988 ResourceManager
24668 Jps
22748 SecondaryNameNode
23244 NodeManager
从属节点上的jps
结果是
19693 DataNode
19966 NodeManager
然后我运行PI示例。
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 30 100
这给了我错误日志
java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.; Host Details : local host is: "Master-R5-Node/xxx.ww.y.zz"; destination host is: "Master-R5-Node":54310;
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:772)
at org.apache.hadoop.ipc.Client.call(Client.java:1472)
at org.apache.hadoop.ipc.Client.call(Client.java:1399)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
at com.sun.proxy.$Proxy9.getFileInfo(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:752)
HDFS文件系统似乎存在问题,因为尝试命令bin/hdfs dfs -mkdir /user
失败并出现类似的异常。
java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.; Host Details : local host is: "Master-R5-Node/xxx.ww.y.zz"; destination host is: "Master-R5-Node":54310;
其中xxx.ww.y.zz
是Master-R5-Node的IP地址
我已经检查并遵循了Apache上和此网站上ConnectionRefused的所有建议。
尽管经过了长达一周的努力,我还是无法解决问题。
感谢。
答案 0 :(得分:6)
导致我遇到问题的原因有很多。但我终于使用一些以下内容来修复它。
- 确保您拥有
/hadoop
和hdfs temporary
文件所需的权限。 (你必须弄清楚你的特殊情况在哪里)- 从
醇>fs.defaultFS
中的$HADOOP_CONF_DIR/core-site.xml
删除端口号。它应该是这样的:
`<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://my.master.ip.address/</value>
<description>NameNode URI</description>
</property>
</configuration>`
- 将以下两个属性添加到`$ HADOOP_CONF_DIR / hdfs-site.xml
醇>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
瞧!你现在应该开始运行了!