標籤:hadoop eof datanode hdfs
錯誤原文分析
檔案操作超租期,實際上就是data stream操作過程中檔案被刪掉了。通常是因為Mapred多個task操作同一個檔案,一個task完成後刪掉檔案導致。這個錯誤跟dfs.datanode.max.transfer.threads參數到達上限有關。這個是datanode同時處理請求的任務上限,總預設值是 4096,該參數取值範圍[1 to 8192]
hadoop docs hdfs-site.xml
dfs.datanode.max.transfer.threads 4096 Specifies the maximum number of threads to use for transferring data in and out of the DN.
解決方案
- 修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml, 增加如下內容:
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
</property>
重啟hadoop 叢集datanode
- 重新運行MR任務,跟同事討論過此問題,我們認為可能是這個MR前置任務各種網路問題&異常導致資料丟失,最終導致 輸入資料不完整
參考連結
http://blog.csdn.net/zhoujj303030/article/details/44422415
https://issues.apache.org/jira/browse/HDFS-4723
http://permalink.gmane.org/gmane.comp.jakarta.lucene.hadoop.user/53521
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
hadoop MR 任務 報錯 "Error: java.io.IOException: Premature EOF from inputStream at org.apache.hadoop.io"