2

在我设置 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%

但是master和slave的log都没有异常。但是在从属任务跟踪器中,日志会连续打印。

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单节点,运行上面的任务,我得到了成功的输出。

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

我该如何解决这个问题?

4

2 回答 2

4

最后我成功了。这就是我所做的。我在运行 map reduce 作业时检查了错误的日志。每个作业 hadoop 都会生成一些作业日志,这些日志位于 logs/userlogs/job_id/* 中。因此,当我检查这些日志时,我终于可以看到一些异常,即 UnknownHostException。所以我发现了我的问题。将带有 ipadress 的从属计算机名称添加到我的主控 /etc/host 并重新启动 hadoop map reduce 作业。
我们可以在 UI 中查看上述作业日志
1.首先转到 jobtracker.jsp
2.单击作业3.
您可以查看当前正在运行的内容或单击 map 或 reduce 并查看日志。

于 2012-09-13T05:45:46.073 回答
2

我会考虑玩mapred.reduce.slowstart.completed.maps物业。默认情况下,它设置为5%,这意味着在完成 5% 的映射器任务时开始随机播放。您的映射器似乎已完成,但即使进度条显示 100% ,最后一个映射器也可能以某种方式卡住。在这种情况下,洗牌也会挂起,因为它正在等待最后一张地图完成。

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

于 2012-09-12T20:45:43.213 回答