在我设置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.两台机器都禁用了防火墙。
如何解决此问题?
答案 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。