2017-09-15 2 views
0

アドミッションコントロールは、各インパラードデーモン内に組み込まれ、statestoreサービスを介して通信します。 impaladデーモンは、照会がすぐに実行されるかどうか、または照会がキューに入れられたかどうかを判別します。 しかし、突然の要求の流れにより、より多くのクエリが同時に実行された場合、クラスタレベルでのImpalaのメモリの上限とLinuxのcgroupのメカニズムは、メモリの過剰割り当てを防ぐためのハード制限として機能します。クエリがこれらの制限に達すると、Impalaはクエリをキャンセルします。インパラリソース管理

これは、個々のImpalaデーモンレベルまたはクラスタレベルで強制されるImpalaリソース制限を意味しますか。

答えて

0

答えは両方です。各インパラードデーモンにはそれぞれMEM_LIMITがあります。それを超過すると、クエリがキャンセルされます。これらのインパラードがクラスターレベルのプールリソースに基づいて入場判定を行うにもかかわらず、ゲートレベル(照会を実行するかキューに入れるかを決定する)が各インパラードレベルにあるとしても、受付制御プールはクラスターレベルで機能します。そのため、異なるインパラドインスタンスに送信されたクエリのフラッドがある場合、インパラードデーモンは、その時点で最新のクラスタリソース使用情報を取得できないため、必要以上に多くのクエリを許可する可能性があります。 CGroupの制限によって、クエリーがキャンセルされることはありません。 CPU競合が発生したときに、インパラドが取得すべきCPUの割合を決定します。

+0

それぞれのインパラードデーモンには独自のMEM_LIMITがあります。これはenv.shに設定されているMEM_LIMITですか、それとも違うのですか? – srini

+0

セットアップについてはわかりませんが、-mem_limitオプションとしてインパラードに渡されます。 Cloudera Managerを使用している場合、MEM_LIMITを検索してそこに設定することができます。 – Lan