是否可以从 EMR 中的映射器和化简器中获得自定义日志......假设我有一个映射器,它可以根据特定条件通过数据和过滤器
映射器代码(流)
- 看输入线
- 如果用户代理不好 - 登录到自定义日志
- 否则让它传递给减速器
如何编写自定义日志并从该作业的日志目录中的所有映射器获取合并日志。
同样,如果我想在减速器阶段完成一些日志记录
- 处理键的值(例如按日期时间排序)
- 如果在一小时内超过 20 个事件,这是一个坏用户 - 记录到自定义日志 - 否则让它去输出
任何帮助表示赞赏。谢谢
您可以使用 MultipleOutputs(新 API)或 MultiFileOutput(旧 API)写入多个输出。将想要的记录写入不同的日志位置。如果您想要 1 个大日志文件,您可以在作业完成后合并它们。
要实现多个输出,请查看 http://hadoop.apache.org/docs/r2.0.3-alpha/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html
Java api 支持创建多个/命名的输出文件。
在用 ruby 编写的流式代码中,我找不到任何方法来做到这一点。