YARNのスケジューラアルゴリズム

19日目です
先日MapReduce v1のスケジューラアルゴリズムというブログを書きました。YARN / MRv2 が推奨になりつつなる今、YARNでのスケジューラアルゴリズムも確認しておいた方が良さそうです。
※CDH4.3での確認です。CDH5b1の環境で検証できたら後ほど更新します。
YARNでは3種類のスケジューラアルゴリズムが用意されています。
FIFOスケジューラ(デフォルト)
フェアスケジューラ
キャパシティスケジューラ
それぞれの詳細は後日確認したいと思いますが、興味のある方はドキュメントをご覧下さい。以下、スクリーンショットを紹介します。

FIFOスケジューラのスクリーンショット

NEW,SUBMITTED,ACCEPTED,RUNNING,FINISHING_Applications_-_2013-12-19_01.19.14

フェアスケジューラのスクリーンショット

前回書いた通り、YARNのフェアスケジューラはプールではなく、キューと呼ぶように変更されています。また、キューはネストして設定ができるようになっています。ネストした設定は下記の設定ファイルとスクリーンショットをご覧下さい。

allocations.xml (FairSchedulerのドキュメントより抜粋した設定)

[html]
<!–?xml version="1.0"?–>
<!–?xml version="1.0"?–>
10000 mb,0vcores
90000 mb,0vcores
50
2.0
fair
5000 mb,0vcores
30
5
[/html]

キャパシティスケジューラのスクリーンショット

capacity-scheduler.xml

[html]
<!–?xml version="1.0"?–>
yarn.scheduler.capacity.root.queues
default
yarn.scheduler.capacity.root.capacity
100
yarn.scheduler.capacity.root.default.capacity
100
[/html]
上記でわかるように、特にフェアスケジューラの設定が大きく変わっています。情報が少ないので、ベストプラクティスのようなものが欲しいですね。
ちなみに、今回はCloudera Managerから設定してみました。こんな画面で設定できます。
yarn1_-_Cloudera_Manager_-_2013-12-19_01.14.41
 

コメント