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 - 无法以 PEM 文件格式写入使用 org.bouncycaSTLe.asn1.pkcs.CertificationRequest 生成的 CSR

java - 在单行中分配和执行 if/else 条件

shell - 使用 shell 脚本的 Cron 作业

java - hadoop mapreduce 无序元组作为映射键

java - 如何在 Linux 中签署 Mac OS X 应用程序?

java - 在 java 1.8 中添加默认方法后,接口(interface)是否仍然完全抽象?

java - 在类路径中找不到 Hadoop 配置,使用 Java 从本地在服务器中运行 mapreduce

hadoop - hive 0.14更新和删除查询配置错误

python - 在 python 中为 Hadoop Map Reduce 创建自定义可写键/值类型?

hadoop - 在hadoop中,1减少或减少数量=映射器数量