通常,Hadoop map / reduce作业会生成写入作业输出文件的键值对列表(使用OutputFormat class) . 很少,键和值都很有用,通常键或值都包含所需信息 .
是否有一个选项(在客户端)来抑制输出文件中的键或抑制输出文件中的值?如果我只想为一个特定的工作做这个,我可以创建一个忽略键或值的新OutputFormat实现 . 但我需要可以重复使用的通用解决方案 .
EDIT: 可能不清楚我的意思"I need generic solution that is reusable for more jobs."让我在例子中解释一下:
假设我有很多准备好的 Mapper
, Reducer
, OutputFormats
类 . 我想将它们组合到不同的'jobs'并在不同的输入文件上运行那些'jobs'以生成各种输出文件 . 在某些情况下(对于某些作业)我需要抑制键,因此它们不会写入输出文件 . 我不想改变我的映射器的代码,减少输出格式 - 他们有太多的东西要做 . 我需要一些通用的解决方案,不需要更改给定的映射器,缩减器或输出格式的代码 . 我怎么做?
1 回答
有's no reason why your final step in a hadoop flow can'配置为将
NullWritable
写为键或值 . 您不应该期望该文件在任何后续的map reduce步骤中都有用 .