如何从映射器进行日志记录? (hadoop with commoncrawl)

时间:2012-12-29 22:53:27

标签: java hadoop mapreduce nosql common-crawl

我正在使用他们的“Mapreduce for the Masses”教程中的commoncrawl示例代码。我正在尝试修改映射器,我希望能够将字符串记录到某个输出。我正在考虑设置一些noSQL数据库,只是将输出推送到它,但它不是一个好的解决方案。从java进行这种日志记录的标准方法是什么?

1 个答案:

答案 0 :(得分:1)

虽然除了通常的记录器之外没有特殊的日志记录解决方案(我至少知道一个)我可以看到一些解决方案。
a)如果日志是调试目的 - 确实写通常的调试日志。如果任务失败,您可以通过UI和分析找到它们。
b)如果这个日志是某种输出,你想要从你的工作中得到一些其他输出 - 给它们分配一些specail键并写入上下文。然后在reducer中你需要一些特殊的逻辑来将它们放到输出中。
c)您可以在HDFS上创建目录并使映射器写入其中。这不是MR的经典方式,因为它是副作用 - 在某些情况下它可以很好。特别考虑到每个映射器创建自己的文件后 - 您可以使用命令hadoop fs -getmerge ...将所有日志作为一个文件获取。
c)如果您希望能够监控作业进度,错误次数等 - 您可以使用计数器。