hadoop协议消息标记的连线类型无效

0md85ypi  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(332)

我在Ubuntu12.04上使用两个节点(每个节点有8个内核)建立了Hadoop2.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;

哪里 .ww.y.zz 是master-r5-node的ip地址
我已经检查并遵循了在apache和这个站点上的所有connectiondensed的建议。
尽管花了一个星期的功夫,我还是修不好。
谢谢。

w8biq8rn

w8biq8rn1#

有这么多的原因可能导致我面临的问题。但我最终还是用了下面的一些东西来修复它。
请确保您拥有访问的所需权限 /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\u conf\u 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>

瞧!你现在应该开始行动了!

相关问题