Apache hadoop map减少任务冻结

时间:2012-09-12 08:01:17

标签: java apache ubuntu hadoop

在我设置hadoop多节点集群后,我确实运行了着名的wordcount map reduce示例。但我没有得到任何输出但冻结任务。这就是我得到的......

12/09/12 13:01:29 INFO input.FileInputFormat: Total input paths to process : 3
12/09/12 13:01:29 INFO util.NativeCodeLoader: Loaded the native-hadoop library
12/09/12 13:01:29 WARN snappy.LoadSnappy: Snappy native library not loaded
12/09/12 13:01:30 INFO mapred.JobClient: Running job: job_201209121300_0002
12/09/12 13:01:31 INFO mapred.JobClient:  map 0% reduce 0%
12/09/12 13:01:45 INFO mapred.JobClient:  map 33% reduce 0%
12/09/12 13:01:48 INFO mapred.JobClient:  map 100% reduce 0%
12/09/12 13:01:54 INFO mapred.JobClient:  map 100% reduce 11%

但是在主服务器和从服务器的日志中都没有例外。但是在奴隶中,任务跟踪器跟踪日志不断打印。

2012-09-12 13:23:14,573 INFO org.apache.hadoop.mapred.TaskTracker:     attempt_201209121300_0002_r_000000_0 0.11111112% reduce > copy (1 of 3 at 0.04 MB/s) >

在此之前,我确实配置了hadoop单节点,运行上述任务,我得到了成功的输出。

p.s: 我有两个节点,可以作为主站和从站。两个ip地址都位于两个节点的/ etc / hosts中 2.无需密码即可为每个主站和从站进行ssh。 (无密码登录)
3.在master中运行start-dfs.sh后,它也在从机中运行(我用jps检查)
这是我遵循的教程。 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
5.两台机器都禁用了防火墙。

如何解决此问题?

2 个答案:

答案 0 :(得分:4)

最后我做到了。这是我做的。我在运行map reduce job时检查了错误的日志。每个作业hadoop都会生成一些位于logs / userlogs / job_id / *中的作业日志。因此,当我检查这些日志时,我终于可以看到一些异常知道为UnknownHostException。所以我发现了我的问题。使用ipadress将奴隶计算机名称添加到我的主人/ etc / host并重新启动hadoop map reduce作业。
我们可以在UI中检查上述作业日志 1.first goto jobtracker.jsp
2.单击作业
3.您可以立即查看正在运行的内容,或单击地图或缩小并查看日志。

答案 1 :(得分:2)

我会考虑使用mapred.reduce.slowstart.completed.maps属性。默认情况下,它设置为 5%,这意味着当完成5%的mapper任务时,shuffle会启动。您的映射器似乎即将完成,但即使进度条显示100%,最终映射器也会以某种方式卡住。在这种情况下,shuffle也会挂起,因为它正在等待最后一张地图完成。

除此之外,您还可以更改mapred.reduce.parallel.copies(shuffle中的并行复制线程数)以查看它是否更适合您的HW。