2

私のhadoopジョブでは、入力データファイルを除いて、各マッパークラス(mapメソッド)に、hdfsに配置した共通ファイルを読み取らせます。このファイルは各マッパーに読み込まれ、各マッパーにコンテンツが保存されます。それで、それをどのように行うのですか?

4

1 に答える 1

4

ニーズに応じて、さまざまなアプローチがあります。

  • 各マッパーのHDFSからファイルを直接読み取ります。これは、共通ファイルが実際に小さい場合にのみ推奨されます。
  • CompositeInputFormatを使用して、いわゆるmap-side-joinを実行するときに、各マッパーで一度に複数のファイルを読み取ります。両方のファイルは同じ方法で分割およびパーティション化されます。
  • ジョブのセットアップ中にファイルをDistributedCacheに追加します。ファイルは、すべてのマッパーがアクセスできるすべてのノードに保存されます。
于 2013-03-12T21:57:51.973 に答える