1つの縮小タスクが非常に長く実行されている操作でグループを実行しています。下図の減速を4時間実行されている一つのキーのためのデータのスキューすなわち、あまりにも多くの値が存在するので、サンプル・コード・スニペットと問題の説明、豚のグループ化中に歪んだデータを扱う方法
inp =load 'input' using PigStorage('|') AS(f1,f2,f3,f4,f5);
grp_inp = GROUP inp BY (f1,f2) parallel 300;
あります。すべての削減タスクは1分ほどで完了します。
この問題を解決するにはどうすればよいですか?どんな助けでも大歓迎です。ありがとう!
おかげSorabhは、F1とF2のデータにはヌルはありません。私はコンバイナが実行されるようにコードを修正しましたが、パフォーマンスは向上しませんでした。他の解決策はありますか? –
私はよく分かりませんが、pig.exec.reducers.bytes.per.reducerを非常に低い値に設定してみてください。豚はこの価値を無視するかもしれないが、それを試す価値がある。あなたがそれぞれの縮小ファイルサイズを制御しているときは、並列を使用する方が良いでしょう。 – sorabh
実際にもう一つ試してみることができます: - パーティショナーを使用して、異なるキーを使用してデータを分割するレデューサーを許可する。 PIGクエリは次のようになります。 - GROUP inp BY(f1、f2)PARTITION BY com.util.KeyPartitioner PARALLEL 300; keyparterを実装するためにhadoop partioner docを確認してください。アイデアはあなたのキーの分散値を与えることができると思う別の列(または列の組み合わせ)を選択することです – sorabh