[英]Cannot write to local HDFS datanode
我嘗試使用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)
有人可以解釋一下嗎?
如果使用非常高的Received
-Version間歇性地看到錯誤Version Mismatch (Expected: 28, Received: 26738 )
,原因可能是不使用hadoop rpc protocoll的應用程序已連接到datenode端口。
我們看到這個錯誤,例如當有人使用Web瀏覽器訪問datanode URL時(打算訪問Web界面)。
錯誤配置可能會產生類似的影響。
問題(對我來說)是hdfs-site.xml
文件中屬性dfs.namenode.name.dir
和dfs.datanode.data.dir
的錯誤配置; 它們必須是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>
java.io.IOException:版本不匹配(預計:28,收到:26738)
Verison不匹配錯誤表明你是usng錯誤的hadoop jar。 確保data.dir或name.dir具有正確的VERSION文件,並且您使用的是正確的hadoop版本。
運行hadoop verison確認。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.