java - 如何从映射器登录? (hadoop 与 commoncrawl)

标签 java hadoop mapreduce nosql common-crawl

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

最佳答案

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

关于java - 如何从映射器登录? (hadoop 与 commoncrawl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14086631/

相关文章:

java - 在类上调用静态方法?

java - 如何在我的 android 库中包含依赖项

RDJDBC::dbConnect 无法连接到 HiveServer2 (kerberos +sasl)

hadoop - cassandra 和 hadoop - 实时与批处理

hadoop - 在hadoop中不运行reducer的情况下运行WordCount

Hadoop Mapreduce 错误输入路径不存在 : hdfs://localhost:54310/user/hduser/input"

java - 套接字文件传输

java - Mapreduce文本文件排序

java - Hadoop WordCount 按单词出现次数排序

基于匹配属性对对象进行分组的Java算法