0

複数のキューと複数のユーザーで Hadoop CapacityScheduler を実行しています。容量がそれぞれ 70%、20%、10% の 3 つのキューがあります。

mapred.capacity-scheduler.queue.default.capacity=70

私が持っているすべてのキューについて

mapred.capacity-scheduler.queue.default.maximum-capacity=100

驚いたことに、余剰容量が利用可能であるにもかかわらず、キューが余剰容量をほとんど使用していないように見えた (キュー固有の容量ですべて「最大」になる)。後で、複数のユーザーからのジョブが含まれている場合にのみ、キューが余分な容量を利用することを発見しました。

つまり、1 人のユーザーがキューに投入したジョブの数に制限はありません。2 番目のジョブが別のユーザーによってサブミットされた場合にのみ、余分な容量が使用されます。

リソースを占有しているジョブが他にない場合は、1 人のユーザーがすべてのクラスター リソースを使用できるようにしたいと考えています。

私は CapacityScheduler のドキュメントを徹底的に調べ、プロパティをいじってみましたが、成功しませんでした。

誰かがこれを行う方法を知っているなら、私に知らせてください。

4

1 に答える 1

0

http://hadoop.apache.org/common/docs/r1.0.3/capacity_scheduler.htmlのプロパティ「mapred.capacity-scheduler.queue.queue-name.user-limit-factor」をご覧ください。

デフォルトでは、この値は 1 に設定されており、クラスターのアイドル状態に関係なく、1 人のユーザーがキューの構成された容量を超えることはありません。あなたが望むものを達成するために、より大きな数に設定することができます。

于 2012-07-19T05:10:36.977 に答える