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