簡體   English   中英

無法寫入本地HDFS datanode

[英]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.dirdfs.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM