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]
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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)