私のhadoopジョブでは、入力データファイルを除いて、各マッパークラス(mapメソッド)に、hdfsに配置した共通ファイルを読み取らせます。このファイルは各マッパーに読み込まれ、各マッパーにコンテンツが保存されます。それで、それをどのように行うのですか?
1766 次
1 に答える
4
ニーズに応じて、さまざまなアプローチがあります。
- 各マッパーのHDFSからファイルを直接読み取ります。これは、共通ファイルが実際に小さい場合にのみ推奨されます。
- CompositeInputFormatを使用して、いわゆるmap-side-joinを実行するときに、各マッパーで一度に複数のファイルを読み取ります。両方のファイルは同じ方法で分割およびパーティション化されます。
- ジョブのセットアップ中にファイルをDistributedCacheに追加します。ファイルは、すべてのマッパーがアクセスできるすべてのノードに保存されます。
于 2013-03-12T21:57:51.973 に答える