2013-08-13 5 views
12

私はhive.exec.parallelがHiveで "hive.exec.parallel"をfalseに設定する利点は何ですか?

set hive.exec.parallel=true; 

ハイブすなわちでtrueに設定されている場合、クエリで独立したタスクを並列に実行できることを知っているようになりました。このためQuboleへ

ありがとう: hive parallel execution

このパラメータをfalseに設定するのいずれかの利点がありますか? 私はここで自分自身を繰り返します:可能であれば、物事を並行して実行し、スループットを増やしたいと思います。なぜ誰かがこのパラメータをfalseに設定するのでしょうか?欠点もありますか?

答えて

3

導入されたときには、安定性がはっきりしていなかったので、それをオフにすることができるはずだからです。十分な人がそれを試して安定したと判断した場合、デフォルトはtrueに切り替えました。 https://issues.apache.org/jira/browse/HIVE-1033

現時点で現実的な欠点はありません。

2

私の経験では、唯一の欠点はリソースの使用です。利用できるリソースが限られている場合は、クエリを順次実行する方が全体的に優れている可能性があります。クエリが並行して実行される場合、1つのクエリで複数のジョブを同時に管理することができ、リソースのクラスタが枯渇する可能性があります。速度が必要なく、負荷が多いクラスタを使用している場合は、物事を順番に実行させる方が全体的に良いかもしれません。

3

Mayank、このプロパティは、いくつかのスター条件でも利点があります。ハイブにはデータベースのロック機能があり、そのデータベースで複数のクエリが実行されていると言います。

は、例えば -
あなたはパラレルプロパティは、あなたの 効率を向上させることができますつのデータベース上で実行されている複数のステージ と複雑なクエリを持っていますが、それはまた 他のプロセスを停止することがDATABASEの「LOCK」を作成します。それらは自身の実行の の時間に同じデータベース上で実行されています。

私は最近、このプロパティ「FALSE」を作ることによって、この問題に直面し、解決してきました。
この回答が、どのシナリオを誤っているのか理解するのに役立ちます。

関連する問題