我在包含多个 AWS 实例的集群上运行 Hadoop MapReduce Java 应用程序。我想知道在洗牌阶段是否有可能知道数据集的大小,即总共有多少数据被洗牌。此外,是否有可能知道每个 reducer 任务处理了多少数据?
问问题
1923 次
2 回答
3
您应该能够从 JobTracker Web UI 中找到此信息。
有一个名为“Reduce shuffle bytes”的计数器详细说明了被洗牌的总字节数 - 请参阅https://issues.apache.org/jira/browse/HADOOP-4845和原始链接票证以获取更多信息。
对于每个 reducer 计数,向下钻取到已完成的 reducer 任务,并针对该任务单独检查此计数器
于 2013-11-06T00:24:29.420 回答
0
您可以转到 AWS EMR 作业屏幕并选择作业,然后单击“调试”按钮。在那里您可以查看您的系统日志文件。它包含有关 Map 和 Reduce 任务的所有信息。转储所有计数器的值,例如“减少随机字节数”、“映射输出记录”等。您还可以在 syslog 中查看程序执行所用的确切时间以及 Map 任务失败的数量。
希望这可以帮助。我建议当您在 AWS 上创建作业时,设置 Debug 选项以便您可以看到此文件(如果您还没有这样做的话)。
于 2013-11-07T05:28:21.513 回答