码迷,mamicode.com
首页 > 编程语言 > 详细

hadoop MR 任务 报错 "Error: java.io.IOException: Premature EOF from inputStream at org.apache.hadoop.io"

时间:2015-08-17 14:05:57      阅读:176      评论:0      收藏:0      [点我收藏+]

标签: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.

解决方案

  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/53521

版权声明:本文为博主原创文章,未经博主允许不得转载。

hadoop MR 任务 报错 "Error: java.io.IOException: Premature EOF from inputStream at org.apache.hadoop.io"

标签:hadoop   eof   datanode   hdfs   

原文地址:http://blog.csdn.net/stark_summer/article/details/47723725

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!