我试图用我正在使用的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)
有人能解释一下吗?
3条答案
按热度按时间pzfprimi1#
java.io.ioexception:版本不匹配(预期:28,收到:26738)
verison mismatch错误表示您使用了错误的hadoop jar。确保data.dir或name.dir具有正确的版本文件,并且您使用的是正确的hadoop版本。
运行hadoop verison进行确认。
6yt4nkrj2#
如果错误
Version Mismatch (Expected: 28, Received: 26738 )
以非常高的Received
-版本,原因可能是不使用hadoop rpc协议的应用程序已连接到datenode端口。例如,当有人使用web浏览器访问datanode url(同时打算访问web界面)时,我们会看到这个错误。
错误配置也会产生类似的效果。
sczxawaw3#
问题(对我来说)是属性配置不正确
dfs.namenode.name.dir
以及dfs.datanode.data.dir
在hdfs-site.xml
文件;它们必须是uri,而不仅仅是路径。