java - 如何过滤 Hadoop map/reduce 作业输出文件中的键或值?

标签 java hadoop mapreduce outputformat

通常,Hadoop map/reduce 作业会生成写入作业输出文件的键值对列表(使用 OutputFormat 类)。很少情况下,键和值都有用,通常键或值都包含所需信息。

是否有一个选项(在客户端)抑制输出文件中的键或抑制输出文件中的值? 如果我只想为一项特定工作执行此操作,我可以创建新的 OutputFormat忽略键或值的实现。但我需要可重复用于更多工作的通用解决方案。

编辑:您可能不清楚我所说的“我需要可重复用于更多工作的通用解决方案”是什么意思。让我举例说明一下:

假设我有很多准备好的 MapperReducerOutputFormats 类。我想将它们组合到不同的“作业”并在不同的输入文件上运行这些“作业”以生成各种输出文件。在某些情况下(对于某些工作)我需要抑制键,所以它们不会写入输出文件。我不想更改我的映射器、输出格式的缩减器的代码——它们太多了,无法做到这一点。我需要一些不需要更改给定映射器、reducer 或输出格式的代码的通用解决方案。我该怎么做?

最佳答案

没有理由不能将您在 hadoop 流中的最后一步配置为将 NullWritable 编写为键或值。您只是不应该期望该文件在任何后续的 map reduce 步骤中有很大用处。

关于java - 如何过滤 Hadoop map/reduce 作业输出文件中的键或值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574356/

相关文章:

java - 如何实现一个真正的异步 java 线程

hadoop - 使用pywebhdfs创建hdfs文件报错: [Errno -2] Name or service not known

apache - 从 java 连接到 Hbase 时出错

hadoop - 基于Map Reduce的OWL文件推理

java - 比较两个摘要的 md5 字符串返回 false

java - 迁移到 Java 1.4 到 Java 1.5+ 时避免 BigDecimal 的问题

java - Maven java maven-antrun-plugin

hadoop - Apache Spark 1.2.1 独立集群给出 java 堆空间错误

python - Pig Python UDF 和 lxml

hadoop - 如何在Oozie中 fork Action