hadoop MR 任務 報錯 "Error: java.io.IOException: Premature EOF from inputStream at org.apache.hadoop.io"

錯誤原文分析

文件操做超租期,實際上就是data stream操做過程當中文件被刪掉了。一般是由於Mapred多個task操做同一個文件,一個task完成後刪掉文件致使。這個錯誤跟dfs.datanode.max.transfer.threads參數到達上限有關。這個是datanode同時處理請求的任務上限,總默認值是 4096,該參數取值範圍[1 to 8192]node

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.

解決方案

  1. 修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml, 增長以下內容:
    <property>
    <name>dfs.datanode.max.transfer.threads</name>
    <value>8192</value>
    </property>

    重啓hadoop 集羣datanode
  2. 從新運行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/53521apache

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。markdown

相關文章
相關標籤/搜索