无法写入本地hdfs数据节点

nbysray5  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(1068)

我试图用我正在使用的java程序将一个文件写入本地hdfs设置 Hadoop 2.3.0 分配和
hadoop-client 2.3.0 hadoop-hdfs 2.3.0 图书馆。
在hdfs日志中显示以下错误:

2014-04-07 18:40:44,479 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: prabhathp:50010:DataXceiver error processing unknown operation  src: /127.0.0.1:38572 dest: /127.0.0.1:50010
java.io.IOException: Version Mismatch (Expected: 28, Received: 26738 )
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:54)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:198)
at java.lang.Thread.run(Thread.java:744)

有人能解释一下吗?

pzfprimi

pzfprimi1#

java.io.ioexception:版本不匹配(预期:28,收到:26738)
verison mismatch错误表示您使用了错误的hadoop jar。确保data.dir或name.dir具有正确的版本文件,并且您使用的是正确的hadoop版本。
运行hadoop verison进行确认。

6yt4nkrj

6yt4nkrj2#

如果错误 Version Mismatch (Expected: 28, Received: 26738 ) 以非常高的 Received -版本,原因可能是不使用hadoop rpc协议的应用程序已连接到datenode端口。
例如,当有人使用web浏览器访问datanode url(同时打算访问web界面)时,我们会看到这个错误。
错误配置也会产生类似的效果。

sczxawaw

sczxawaw3#

问题(对我来说)是属性配置不正确 dfs.namenode.name.dir 以及 dfs.datanode.data.dirhdfs-site.xml 文件;它们必须是uri,而不仅仅是路径。

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/dfs/nn</value>  # wrong, change to 'file:///dfs/nn'
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>/dfs/dn</value>  # wrong, change to 'file:///dfs/dn'
</property>

相关问题