Hadoopクラスタ管理に使っているChefのレシピを公開しています。
- CentOS 5.6
- Chef 0.9.8-2.el5
cookbookをChefサーバーに追加してください。
各cookbookの attributes/defalut.rb
を編集することで設定をカスタマイズすることが可能です。
また、各Nodeの設定でAttributesを設定することでNode個別のカスタマイズも可能です。
各サーバーに対するRoleの設定を行います。
Roleの設定で、Run List
に下記で指定のrecipeを追加してください。
Role名は大文字小文字を区別します。
- ganglia::gmetad
クラスタ内でこのRoleを設定できるのは1台のみです。
- ganglia::gmond
ファイルディスクリプタやswappinessの設定は行いませんので、個別に設定しておいてください。 また、JDKのインストールも行いませんので、予めインストールしておいてください。
LZOのインストールに ant 1.7, ant-nodeps 1.7, gcc が必要です。
- hadoop::namenode
クラスタ内でこのRoleを設定できるのは1台のみです。
- hadoop::secondarynamenode
- hadoop::datanode
- hadoop::jobtracker
クラスタ内でこのRoleを設定できるのは1台のみです。
- hadoop::tasktracker
- zookeeper::server
このRoleを設定したNodeには、必ず Attribute "zookeeper":{"myid":0}
を設定してください。
myidは同じ値にならないようにしてください。
HadoopとZooKeeperのcookbookが必要です。
- zookeeper::client
- hbase::hmaster
- zookeeper::client
- hbase::regionserver
HadoopとZooKeeperのcookbookが必要です。
- zookeeper::client
- flume::master
このRoleを設定したNodeには、必ず Attribute "flume":{"master":{"serverid":0}}
を設定してください。
serveridは同じ値にならないようにしてください。
- zookeeper::client
- flume::node
各Nodeに、上記で設定したRoleを割り当てていきます。 依存するRoleがある場合には、必ずそのRoleを上位に設定するようにしてください。
Node上で、
# chef-client
コマンドを実行すると設定が反映されます。
Apache License, Version 2.0
Takuya UESHIN (ueshin@happy-camper.st)