这是用例:
我有一个坚果爬行数据库(它是一个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);