次のような豚のスクリプトを実行しています
<something>
<something>
B = GROUP A by bucketid PARALLEL 200;
C = FOREACH B {
sorted = SORT A by field1, field2 ...;
GENERATE FLATTEN(sorted);
}
STORE C INTO 'output' USING MultiStorage(output, '8', 'gz');
フィールドbucketid
は 200 の異なる値を取るため、各レデューサーが 1 つのグループを処理することを期待して、PARALLEL を 200 に設定しています。ただし、一部のレデューサーは何も実行しませんが、他のレデューサーは複数のグループを処理します。この背後にあるアイデアは何ですか?
私が直面している実際の問題は、1 つのレデューサーがR
他のレデューサーよりも遅れており、タスク ログにmerging 13GB of data
(そしてレデューサーが削減フェーズにある) ということです。ただし、入力データに基づくと、それほどR
大量のデータを処理することは期待できません。終了するとR
、それによって生成された出力パーツ ファイルは350 MB
(gzip 形式の) だけであり、解凍すると、6 GB
. merging 13 GB of data
だから、レデューサーが実行されているときにログに表示されるのはなぜだろうと思っています。この背後にある理由はありますか?何か不足していますか?