ユースケースは次のとおりです。
訪問済みおよび未訪問のステータスを含むURLに関するデータを含むnutchcralldb(hadoopマップファイル)があります。URLのステータスに基づいて、2つのcrawldb(マップファイル)に分割したいと考えています。
これまでMultipleOutputFormatを使用してみましたが、シーケンス ファイルまたはテキスト ファイルでは機能し、マップ ファイルでは機能しないことを読みました。
(参考:hadoop v20.2を使用しています)
ユースケースは次のとおりです。
訪問済みおよび未訪問のステータスを含むURLに関するデータを含むnutchcralldb(hadoopマップファイル)があります。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);