4

Hadoop の分散キャッシュを使用すると、開発者は小さなファイルを MR コンテキストに追加できます。これを使用して、Map または Reduce フェーズで追加情報を取得できます。ただし、このキャッシュにアクセスする方法は見つかりませんでしたPartitionerPartitionerキーがレデューサーに送信される方法を決定するために、カスタムで小さなファイル (以前の MR ジョブの出力) の内容が必要です。

残念ながら、これに関する有用なドキュメントは見つかりません。現在、私の唯一のアイデアは、ファイルの内容を Base64 文字列にシリアル化し、Configuration. Configurations を実装させることで、パーティショナーで使用できますConfigurable。ファイルはこのアプローチには十分小さい (約 50KB) ですが、分散キャッシュの方が適していると思います。

編集: 私は少し良いと思う別のアプローチを見つけました。パーティショナーでアクセスする必要があるファイルは HDFS にあるため、その完全修飾URIConfiguration. 私PartitionersetConf方法では、パスを介して再作成new Path(new URI(conf.get("some.file.key")))し、の助けを借りてそれを読み取ることができますConfiguration。それでもハックですが...

4

0 に答える 0