以下是用例:
我有一个nutch crawldb(它是一个hadoop映射文件),其中包含有关url的数据,其中包括其访问和未访问的状态。我想根据网址的状态将其拆分为2个crawldb(地图文件)。
直到现在我尝试使用MultipleOutputFormat,但我读到它适用于序列文件或文本文件而非地图文件。
(仅供参考:我正在使用hadoop v20.2)
答案 0 :(得分:1)
而不是MultipleOutputs,你必须编写一个自定义缩减器来为每种类型调用MultipleOutputs.getCollector()方法,这里有javadocs中的示例用法。
在您的工作配置中:
MultipleOutputs.addMultiNamedOutput(conf, "map",
org.apache.hadoop.mapred.MapFileOutputFormat.class,
LongWritable.class, Text.class);