2012-09-12 57 views
2

设置hadoop多节点集群后,我确实跑过了着名的wordcount map缩小例子。但我没有得到任何输出,但冻结了任务。这里我得到了什么......Apache hadoop map减少任务冻结

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: 1.我有两个节点,分别作为主站和从站。两个IP地址都在两个节点的/ etc/hosts中。
2.可以不用密码ssh给每个主站和从站。 (无密码登录)
3.在master中运行start-dfs.sh之后,它也运行在slave机器上(我用jps进行了检查)
4.这里是我遵循的教程。 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
5.两台机器都禁用了防火墙。

如何解决此问题?

+0

类似的帖子:http://stackoverflow.com/questions/10165549/hadoop-wordcount-example-stuck-at-map-100-reduce-0 –

+0

这可能有助于http://stackoverflow.com/questions/32511280/Hadoop的1-2-1-多节点集群减速器相位挂起换单词计数程序/ 32551259#32551259 –

回答

2

我会考虑玩mapred.reduce.slowstart.completed.maps属性。默认情况下,它被设置为5%这意味着当5%的mapper任务完成时,洗牌开始。您的映射器似乎即将完成,但可能会发生最后一次映射器卡住,即使进度条显示为100%。在这种情况下,随着等待最后的地图完成,洗牌也将挂起。

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

4

最后我做到了。这是我所做的。运行地图缩减作业时检查了错误的日志。每个作业hadoop都会生成一些位于logs/userlogs/job_id/*中的作业日志。所以当我检查这些日志时,我终于可以看到一些知道UnknownHostException的异常。所以我发现我的问题。使用ipadress将slaves计算机名添加到我的主设备/ etc/host中,然后重新启动hadoop map reduce作业。
我们可以检查上面的作业日志在UI
1.首先转到jobtracker.jsp
2.Click工作
3.You可以看到目前正在运行什么,或点击地图或降低并检查日志。