Cloudera Manager Advent Calendar 2015の11日目です。
Cloudera Manager(以下CM)を使っていると、サービスとロールという言葉によく出くわします。サービスは、HDFSやYARNといったApacheプロジェクト名に(概ね)該当する名前を指します。一方で、ロールとはサービスがもつ各々のプロセス、になります。つまり、HDFSサービスのロールはNameNodeやDataNode、YARNサービスのロールはResourceManagerやNodeManagerなどなど、となるわけです。
さて、クラスタを運用していると、必ずしも均一なスペックのマシンを用意できるとは限りません。ホスト間でメモリやCPU、ディスク数などのリソースに違いが出てしまうのは珍しいことではないでしょう。そのようなとき、ロールが使用する設定もマシン毎に使い分けられると便利です。今回は、ロールグループという機能を使ってこれを実現する手順を説明します(画面ショットはCloudera Manager 5.5です)。
参考: Role Groups
http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/cm_mc_role_groups.html
ロールグループを作成する
各サービスの設定画面に「ロールグループ」というボタンがあるのでクリックします。
DataNode Default Groupというのが、現在すべてのDataNodeに適用されているロールグループになります。
「作成」よりロールグループを作ります。ここでは「Poor DataNodes」という新しいロールグループを作成しました。コピー元を指定することで、ひとまずすべての設定を受け継ぐことができます。
ロールグループを任意のホストに割り当てる
このままでは作成したロールグループがどこにも割り当てられていません。明示的に「ホスト」を「ロールグループ」の下に移動してやる必要があります。
ロールグループ毎に設定を変更する
以上で、ロールグループ毎の設定の切り分けが可能になります。たとえば、以下ではDataNode Default Groupには5GBのヒープサイズを、新規に作成したPoor DataNodesには3GBのヒープサイズを設定しています。これで、Poor DataNodesに割り当てられたホストには異なる設定ファイルが配布される、というわけです。
最後に
ロールグループは目立ちにくいですが、シンプルかつ、便利で強力な機能です。ぜひ使ってみてください。
そういえば、本日バグフィックスリリースがあったみたいです。下記もあわせてご覧ください!
Cloudera Enterprise 5.5.1/Cloudera Director 1.5.2 リリースのおしらせ
http://www.cloudera.co.jp/blog/c551_general_release.html