hadoop真的能处理datanode故障吗?



在我们的hadoop设置中,当datanode崩溃(或)hadoop在datanode上没有响应时,reduce任务失败,无法从失败的节点读取(下面的例外)。我认为hadoop处理数据节点故障,这是创建hadoop的主要目的。有人在他们的集群中遇到类似的问题吗?如果你有解决办法,请告诉我。

java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read1(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.getInputStream(ReduceTask.java:1547)
    at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.setupSecureConnection(ReduceTask.java:1483)
    at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.getMapOutput(ReduceTask.java:1391)
    at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.copyOutput(ReduceTask.java:1302)
    at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.run(ReduceTask.java:1234)

当mapreduce任务中的一个任务失败时,Hadoop会在其他节点上重试您可以查看jobtracker (:50030/jobtracker.jsp)并查看列入黑名单的节点(在保持活动状态方面存在问题的节点)或演练到正在运行/完成的作业,并查看已杀死的任务/重试次数以及死节点、退役节点等的数量。

我在集群上遇到过类似的问题,由于"内存不足"问题,在某些节点上执行任务失败。它们肯定在其他节点上重新启动了。由于设计不当,计算最终失败,导致所有节点耗尽内存,最终达到取消作业的阈值。

相关内容

  • 没有找到相关文章

最新更新