Hadoop错误 - 所有数据节点都在中止

时间:2014-08-10 19:23:58

标签: hadoop mapreduce hdfs yarn hadoop2

我正在使用Hadoop 2.3.0版本。有时,当我执行Map reduce作业时,将显示以下错误。

14/08/10 12:14:59 INFO mapreduce.Job: Task Id : attempt_1407694955806_0002_m_000780_0, Status : FAILED
Error: java.io.IOException: All datanodes 192.168.30.2:50010 are bad. Aborting...
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrRecovery(DFSOutputStream.java:1023)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatanodeError(DFSOutputStream.java:838)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:483)


当我尝试检查这些失败任务的日志文件时,此任务的日志文件夹将为空。

我无法理解此错误背后的原因。有人可以让我知道如何解决这个问题。谢谢你的帮助。

2 个答案:

答案 0 :(得分:5)

您似乎正在达到用户的打开文件句柄限制。这个 是一个非常常见的问题,在大多数情况下都可以清除 增加ulimit值(默认情况下大多数是1024,很容易 像你这样的多出工作可以用尽。)

您可以按照此简短指南来增加它: http://blog.cloudera.com/blog/2009/03/configuration-parameters-what-can-you-just-ignore/ [“文件描述符限制”部分]

Harsh J回答 - https://groups.google.com/a/cloudera.org/forum/#!topic/cdh-user/kJRUkVxmfhw

答案 1 :(得分:0)

spark.shuffle.service.enabled设置为true为我解决了这个问题。

spark.dynamicAllocation.enabled允许Spark将执行程序动态分配给其他任务。 spark.shuffle.service.enabled设置为false时,将禁用外部随机播放服务,并且数据仅存储在执行程序上。重新分配执行者后,数据将丢失,并且出现异常

  

java.io.IOException:所有数据节点均损坏。

引发数据请求。