即使发生IOException,java作业也会成功完成
在运行GridMix时,我在主节点上收到各种IOException,我想知道这是我真正应该关心的事情,还是在我的作业成功完成时是暂时的:
IOException: Bad connect ack with firstBadLink: \
java.io.IOException: Bad response ERROR for block BP-49483579-10.0.1.190-1449960324681:blk_1073746606_5783 from datanode 10.0.1.192:50010
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer$ResponseProcessor.run(DFSOutputStream.java:819)
# 1 楼答案
在理解您的完整设置之前,我无法确定,但很有可能这些异常是在附加到管道设置时发生的,就代码而言,您可以说
stage == BlockConstructionStage.PIPELINE_SETUP_APPEND
在任何情况下,由于您的工作正在成功完成,您不必担心,而且它成功完成的原因是,因为当尝试打开DataOutputStream到DataNode管道时,出现一些异常,它会继续尝试,直到管道设置完毕
异常发生在^{} ,下面是一些重要的代码片段供您理解
现在,从
setupPipelineForAppendOrRecovery
调用createBlockOutputStream
,正如这个方法的代码注释所提到的那样——“它一直在尝试,直到建立管道为止”如果你仔细阅读完整的
org.apache.hadoop.hdfs.DFSOutputStream
代码,你就会明白管道安装试验将继续进行,直到创建了一个管道供追加或重新使用如果您想处理它,那么您可以尝试从
hdfs-site.xml
调整dfs.datanode.max.xcievers
属性,最多人报告来自同一个属性的解决方案。请注意,设置属性后需要重新启动hadoop服务# 2 楼答案
忽略它