我正在使用他们的“ Mapreduce for the Masses ”教程中的 commoncrawl 示例代码。我正在尝试对映射器进行修改,并且希望能够将字符串记录到某些输出中。我正在考虑设置一些 noSQL 数据库并将我的输出推送给它,但这并不是一个好的解决方案。从java进行这种日志记录的标准方法是什么?
问问题
627 次
1 回答
1
虽然除了通常的记录器(至少我知道一个)之外,没有针对日志的特殊解决方案,但我可以看到一些解决方案。
a) 如果日志是用于调试目的 - 确实要编写通常的调试日志。如果任务失败,您可以通过 UI 找到它们并进行分析。
b)如果此日志是您希望与您的工作的其他输出一起获得的某种输出 - 为它们分配一些特殊键并写入上下文。然后在减速器中,您将需要一些特殊的逻辑将它们放到输出中。
c)您可以在 HDFS 上创建目录并让映射器写入那里。这不是 MR 的经典方式,因为它是副作用 - 在某些情况下它可能很好。特别是考虑到每个映射器将创建自己的文件之后 - 您可以使用命令 hadoop fs -getmerge ... 将所有日志作为一个文件获取。
c) 如果您希望能够监控您的工作进度、错误数量等 - 您可以使用计数器。
于 2012-12-30T21:34:44.293 回答