0

チャンク、たとえばチャンク i がマッパーによって読み取られると、このチャンク内のレコードに関する情報が F_i という補助ファイルに格納される、反復的な mapreduce ジョブがあります。次の反復 (ジョブ) では、別のマッパーがチャンク i を読み取る可能性があります。ただし、このマッパーは補助ファイル Fi の一部の情報を更新する必要があります。これを行うメカニズムはありますか?

異なるチャンクを区別する方法が得られれば、解決できると思います。たとえば、各チャンクに一意の名前が付けられている場合、マッパーはそれがフィードしたチャンクの補助ファイルを単純に読み取ることができます。

4

1 に答える 1

0

専用カウンターを使用。分割 を 1 から処理し続けると、各マップのカウンターが更新されます。チャンク 1のF_1のように、それに応じてファイルに名前を付けます。

次の反復で同じトリックを適用します。カウンターを作成し、マッパーが進むにつれて増加し続けます。マッパーに入力するたびにカウンター値を確認し、このカウンターの値と同じ番号が名前に含まれるファイルを読み取ります。例えば ​​:

最初の反復で 5 つのチャンクを処理したとします。つまり、F_1、F_2 などの 5 つのファイルが作成されます。ここで、2 番目のフェーズで再びチャンク 1 から開始します。カウンターを作成し、それを 1 で更新します。次に、マッパー自体の内部のカウンター値を確認し、値が 1 の場合は、次の名前のファイルを読み取る必要があることがわかります。ファイル_1。

于 2013-09-19T17:44:25.913 に答える