ロールグループを作成してホストのリソースに応じた設定を適用する

[Cloudera Manager Advent Calendar 2015](http://qiita.com/advent-calendar/2015/cm)の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

# ロールグループを作成する

各サービスの設定画面に「ロールグループ」というボタンがあるのでクリックします。

![alt](https://lh3.googleusercontent.com/aTdOguumN7skpO61kOkgFRO2VkMoCIJrD2RPCzBZYfpBOBj8HK3viwkUzpadDHL7qi_4tZEnElHsg_-lQ5MzPm4jWZ1EgfXOFX7n6eFUGdlKT-MIusR7uz4wTuWmtlE_huIm9Xd1PCNKhuZ0XYbBKH4dQr9yBlzOL1psDJjTQ4Kur8Mmw5RwhvJ4Sn90BlrAZF5Ga-e5b-PmfS5fNCy1KFV7osgLVXP3dvFddreS-l7DqYYtK3OnYomvi1bAlV1XyRDqVCvRnIS_yXH_MmIpDk9Y8jj4-yWudmEWlKTrC-qu5QQfALAgITin7odwhuYvX2I-aJDW4DKKIV1QHvCdldlGRw-rT_KJdEhp96QjjwDkUeA3QY3qpyjfLFrU2Xs--Me2_ujeOMV4UFJoLUtONippMpRQXUGRU60Vo9ufFIJP7bGxsnZvnkaBl69InNkegrWtK0-i1llfWwLlIVUAoVkeZRsFGkhFvt_RHHPW8nh6aObz2AdeMfy4nEumr0BEa3D8j1i0KWAiDetBIzVGrTBwHaOEdZXVxdBdeIKX726aE1cVzWFGAETIj9SBIC3b=w1067-h341-no)

DataNode Default Groupというのが、現在すべてのDataNodeに適用されているロールグループになります。

![alt](https://lh3.googleusercontent.com/rTaByqrVihatRXKjPtLlCEDnYLavCzCH5y_mFRwWIN-jbS4kwKoF2s4GnjUIiuMl_EmXhpNXEiYyFLqTQ2RmUS02mHKX0od6qAFyHB3OnjcxzIzhq3vAYokEUKPfcovdydOkAwkYmrRHusjCp0Us6IfvYHckLLaG_ER_xSzKrpIU9EgVDl6dH0qGKsyiqeZCvpgTJujBPLWRhVg8bqCnxYEgVB8iAUSYHlhVZsp73MI0b3mb6PqSAERNUPDgeWOXbKj6JcgpYk5RfJpwbNhkoak7EwSmhSRUgxnFVJ0HL-iW63KV9WxCLIiPFYN7JpwHilR0aUelJzyZ_4PqnmD6lGvAJUQFIIoULbwEDLIVlCzES_fblBbdur458RtxYYfRPsqF3pVbE6-XbeWtJR3NsvyUQktbLcNovmL8HGEt3sbkMHm1jsC18kt8xoAyLL8c9fDJdZVhzkhu4lvmC8RcGCBv-thqGSVg7GIT73IG4WYnirEebC1PIyM9U0XDp3BA-g40iLVST9dNfgwj9jmtFn-_zcEoDTLzdlXd5bwHlhJ5WFdPFVSuZU7-Zr2P5TKu=w456-h513-no)

「作成」よりロールグループを作ります。ここでは「Poor DataNodes」という新しいロールグループを作成しました。コピー元を指定することで、ひとまずすべての設定を受け継ぐことができます。

![alt](https://lh3.googleusercontent.com/S5cTGjxu7526oKCfyJcs-EsA1s1B6H3W9uC1N3t_e0uXu89IVMIFUX-ydX85BsM_fxuRW-EcTmBXRjy2zBh_7Cl9FBWTdLcFb-zkhVZhTy8JrsfTzGCcP-92w-4kTObWPhPhLg8XG2rhLK4lE2tVd8k2njPdYvqVm5ZlGbyZW24F6wxl3Iya4BxLINFcKhOvTV2HoQBBEXbYKksbBBgjLEpGXhhgnCbkssn8A_NE6Lj4IJCPW8-JtjPTLwg-b0R2JWG-Tj3UdXbZg1g0yCAANFE-nvRDXFUdCgGvo4yq5YrzKZtdsZXwe1eWTzEipCrITy05pzD-7HqOJJbyuJcfwAwp2f7MYr8VWMEh8QrDAhNAVQYc_HamS_U3e8ebU6os7CVBfUG3eEftiXoxSz-VraNcp2qz6Rxle5M6dqsYtGIzVaePwC7LRpe0njv48mWYqC3LoWKkw8LlC3xQe0N99HkcD-L6DkD_VEq7xTPMfjo3bAtBHRBeQkWpVrI46JIjEcjsQ9AyhCGeNCJ296JgfYImc7ceQqTyeCQvZ-CJBmei2Bt30QDSOnyR9HErCsIl=w590-h424-no)

# ロールグループを任意のホストに割り当てる

このままでは作成したロールグループがどこにも割り当てられていません。明示的に「ホスト」を「ロールグループ」の下に移動してやる必要があります。

![alt](https://lh3.googleusercontent.com/vaVe7ZaFejAqcV3k7KwZqrsRh1sGcXOOpU1vJh5_5p-cPT0MF22VPYTYDbxCX9JuBzvXhY0QBqikiVgPZM0kp2HZ9bx4T4RdhhDvi8NkePzFWLtE3lIPJeX1vtu3jU03TquI7_q7AuJY4FtyfpwMhNGa1jLttHYsw0GbSVoJPMKe2uAeRO-55RWfmKc_S4V1i7XGZ8f9W1HRhB1QWf18pjlmE2z-4W1HoZ1LVKBYBRvH6IRA_5BLwZWc3FLMvXyb-3y-WIayH4OQ5AwuETNqEenvIWnNSTqcE9O6fFaRjlXL3pUaAlnCyRHvWY34hRMo24cMr_mT0NGQNDsgqMjVSpYqeyTyH778Fl3YDgBdm6nHA_fXhhtzsroneKh5RB9f14nmRU7O0Hwpg3JsvM03MYeMvS3Lxx_2MAA6m03YK1qMaCZs8NaZFuR8T8GG-qUBSOwHv4CJ_C-TRANxFp0wtfQHc2yxbIJQyz7T1FTuIrNZ2ZzvpFXgxnAcnJhzC00pVWrdAuzcfrIcU_2d4_7SkPQryzhuAi9llBclFzOr2P5Z15_jmXDJdZnDUJm2CxMr=w564-h220-no)

![alt](https://lh3.googleusercontent.com/BonR7btbKOc3lVDYYLwzk63v02Rs0NaMn41fwG2RX7GkvP86kSZT4gY1IuMrARGVgRAnP_ajW3dRGNOU1uM4Eh_GltjOwiqib3D2LDnp4QWrwcKYpgaFS43fLV0TPP_TBonlf3Ui-uuCrHH6Oe3YCBaSFUtAYM4DxyymmXC4YdHX2Xof_5SbleQ2n70kaM1QAivNhHKBnjAsHZx7wl96FXTxaRpK7elU8t1-WR_78gV-jb7B2Vp0RZSIe2ernoP-owImnu7l2xyg6vZ-mYRiNSp3Pa1Q0xZWKxDDZwLBs3zNJlfDBOXZmxro93EpNEaKw5Nkyhz9ygdXqJRYgRYFlX_kb4PRd6SouWuXyp1odBD2fuT8cmvILMoZaDxuWGjFl1ut7VKi9yjegrIpSyauZadJBhZdjLIFYTgtg3CZo4iRuMDheK_VnIc7fZtUtdrpKwJp7pvY6_xVbpFumiYQg4A_4j06t4fOHTimpFoiiZvNDpDzBkx6ZC5cLBQ_nSZoNjt6bT8u7weHNqCmaGVyOzaEluyzrx3Nxtq0QBs6FLLGr3a4JLPaHlbHvI9Z9Tnx=w594-h294-no)

# ロールグループ毎に設定を変更する

以上で、ロールグループ毎の設定の切り分けが可能になります。たとえば、以下ではDataNode Default Groupには5GBのヒープサイズを、新規に作成したPoor DataNodesには3GBのヒープサイズを設定しています。これで、Poor DataNodesに割り当てられたホストには異なる設定ファイルが配布される、というわけです。

![alt](https://lh3.googleusercontent.com/eVhGJ4S9Yvvm3FPu6A4NPUiGRYKkmqLUBHKJ9_EgoI3gMzZd8a7G1xxjJBq_ZlbDRMn1xhhrPbY7gizPBfFCPrGCY2lUqecAk7xG1YlwunOWlyCWIxNr7xC09GIBOoHCLlJkCO70x0nAq8D1FdEszRHrV3uPG7fezxC33sqGbGcrZPbBkJHgwQPyUjTo7e0cl2bF7sgRhthhuEhSAkW3WZEWjD604vVfRKXK253NG8D9X-4BV1Q48rNwzzKo5w6cfHkzrqKVxRe-kdrqz2FtNBF6l8NgeRKcyjffIYgt99w1u6KVeY4HNCVIkZ7TQLtYd8vpx8or0aNFrGOKi5z6530_7HHXPrqM7rxj8db9-qi6Jpbc1O1ix7qCaxLvdJldaRL5MwTQeGc1AxFz8Bhw0T8Wm2N1jwc-xZkpZkXmu37-PuyMND_LAlBOrseys1T4r3PibDmDl0QHLf90Uf79R_UV4v4EHBHKIWRNbAXWrXDH1ELFAU-hLobDvkIoijgOnIaGU6Kxx_fGjlkxllPA3FFGdarbxyi7fcSyYXLkXRrctSaIzli-NtK-RtfG4r16=w447-h163-no)

# 最後に

ロールグループは目立ちにくいですが、シンプルかつ、便利で強力な機能です。ぜひ使ってみてください。

そういえば、本日バグフィックスリリースがあったみたいです。下記もあわせてご覧ください！

Cloudera Enterprise 5.5.1/Cloudera Director 1.5.2 リリースのおしらせ
http://www.cloudera.co.jp/blog/c551_general_release.html