由于来自inputstream的过早eof,hadoop mapreduce作业i/o异常

n9vozmp4  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(498)

我用这个命令运行了一个mapreduce程序 hadoop jar <jar> [mainClass] path/to/input path/to/output . 然而,我的工作是: INFO mapreduce.Job: map 100% reduce 29% .
很久以后,我终止并检查了datanode日志(我在伪分布式模式下运行)。它包含以下例外:

java.io.IOException: Premature EOF from inputStream
at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:201)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:472)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:849)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:804)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:137)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:74)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:251)
at java.lang.Thread.run(Thread.java:745)

5秒后在日志中 ERROR DataXceiver error processing WRITE_BLOCK operation .
什么问题可能导致此异常和错误?
我的nodehealthreport说:

1/1 local-dirs are bad: /home/$USER/hadoop/nm-local-dir; 
1/1 log-dirs are bad: /home/$USER/hadoop-2.7.1/logs/userlogs

我发现这个表明 dfs.datanode.max.xcievers 可能需要增加。但是,它被弃用,新属性被调用 dfs.datanode.max.transfer.threads 默认值为4096。如果更改此项可以解决我的问题,我应该将其设置为什么新值?
这表明 ulimit 对于datanode可能需要增加。我的 ulimit -n (打开的文件)是1024。如果增加这个值可以解决我的问题,我应该设置什么?

yk9xbfzb

yk9xbfzb1#

过早的eof可能是由于多种原因造成的,其中一个原因是使用fileoutputcommitter在一个reducer节点上产生大量线程来写入磁盘。multipleoutputs类允许您使用自定义名称写入文件,为了实现这一点,它为每个文件生成一个线程,并将一个端口绑定到该线程以写入磁盘。现在,这就限制了在一个reducer节点上可以写入的文件数量。当一个reducer节点上的文件数大约超过12000个时,我遇到了这个错误,因为线程被终止,\临时文件夹被删除,导致这些异常消息过多。我的猜测是-这不是内存超调问题,也不能通过允许hadoop引擎生成更多线程来解决。减少一个节点上一次写入的文件数解决了我的问题—要么减少实际写入的文件数,要么增加reducer节点数。

相关问题