分享

hadoop MR 任务 报错 Premature EOF from inputStream at org.apache.hadoop.io

arsenduan 发表于 2015-8-19 17:52:42 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 15559
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
[mw_shl_code=bash,true]dfs.datanode.max.transfer.threads   4096   
Specifies the maximum number of threads to use for transferring data in and out of the DN.[/mw_shl_code]



已有(1)人评论

跳转到指定楼层
arsenduan 发表于 2015-8-19 17:53:45
解决方案
  • 修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml, 增加如下内容:
    [mw_shl_code=bash,true]<property>
    <name>dfs.datanode.max.transfer.threads</name>
    <value>8192</value>
    </property> [/mw_shl_code]

    重启hadoop 集群datanode
  • 重新运行MR任务,跟同事讨论过此问题,我们认为可能是这个MR前置任务各种网络问题&异常导致数据丢失,最终导致 输入数据不完整

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条