在我们的hadoop设置中,当数据节点崩溃(或)hadoop在datanode上没有响应时,reduce任务将失败,无法从失败的节点读取(以下例外)。我认为hadoop处理数据节点故障,这是创建hadoop的主要目的。有人遇到类似的问题吗?如果您有解决方案,请告诉我。hadoop是否真的处理datanode失败?
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)
“NameNode将DataNode标记为没有最近Heartbeats为死,并且不会向它们转发任何新的IO请求,任何注册到死DataNode的数据都不再可用于HDFS。 [HDFS体系结构](http://hadoop.apache.org/common/docs/r0.20.2/hdfs_design.html) –
这些日志来自哪里? DataNode或NameNode? – wlk
它来自reduce任务,请看stacktrace。 –