So-net無料ブログ作成

インフラエンジニアのためのHadoop情報 Gangliaその1 [Hadoop]

これまではHadoopの死活監視が目的のNagios設定を見てきましたが、HadoopはJMX
を通してメモリ使用状況、ジョブ(MapReduce)の進行状況を詳細に見ることができます。
このJMXの値を、Gangliaというグラフ表示の監視ツールを使って可視化しましょう。
ジョブの投入状況に合わせて、メモリやCPUの利用率が各ノード毎にグラフ化されて
見えるので、ボトルネックの発見に役立つはずです。
Gangliaのインストールは終わっているものとして・・・としたいところですが
Nagiosと違って、Hadoopの各ノード側全てにインストールしなければいけないので
ちょっと面倒。
rpmパッケージを作って、各ノードに配布しちゃいましょう。
まずは、Ganglia監視サーバ側を作成。
rpm化にはcheckinstallを使います。あらかじめインストールしておきます。
ビルドに必要なものを片っ端からインストール。
$ sudo yum install rpm-build
$ sudo yum install checkinstall
$ sudo yum install libconfuse
$ sudo yum install libconfuse-devel
$ sudo yum install rrdtool
$ sudo yum install rrdtool-devel
$ sudo yum install gcc
$ sudo yum install apr-devel
$ sudo yum install expat-devel
$ sudo yum install pcre-devel
$ sudo yum install php
$ sudo yum install php-gd
$ sudo yum install httpd

次にGangliaのサイトから「ganglia-3.1.7.tar.gz」を取得してきてビルド。
$ tar xvf ganglia-3.1.7.tar.gz
$ cd ganglia-3.1.7
$ ./configure --with-gmetad --sysconfdir=/etc/ganglia
$ make
$ sudo /usr/sbin/checkinstall

出来上がった「ganglia-3.1.7-1.i386.rpm」をインストール。
$ sudo rpm -ivh ganglia-3.1.7-1.i386.rpm

このあと、設定ファイル、作業ディレクトリ作成、パーミッション設定、起動スクリプト作成
その他いろいろしないと起動しないのですが、これらもrpm化したパッケージを作ったので
それで早道しちゃいます。

http://github.com/so-net-developer/Hadoop/blob/master/tools/ganglia-conf-1.0-0.noarch.rpm

rpm化に使ったSPECファイルも置いておくので、何をやっているかはこれを見てください。

http://github.com/so-net-developer/Hadoop/blob/master/tools/ganglia-conf-1.0.spec

$ sudo rpm -ivh ganglia-conf-1.0-0.noarch.rpm

Ganglia監視サーバの起動。
$ sudo /sbin/service gmetad start
$ sudo /sbin/service gmond start
$ sudo /sbin/service httpd start

参考までに、SPECファイルを使ってganglia-conf-1.0-0.noarch.rpmを作る方法を書いて
おきます。
まず、下に示すようなディレクトリを作り、ファイルを配置します。設定ファイルや起動
スクリプトもgangliaのソースを展開すると見つかるので、環境に合わせて修正したものを
配置します。
|-- ganglia-conf-1.0
|   |-- etc
|   |   |-- ganglia                 ←ganglia(gmond)用設定ファイル
|   |   |   `-- gmond.conf
|   |   `-- init.d                  ←gangliaの起動スクリプト
|   |       |-- gmetad
|   |       `-- gmond
|   `-- var
|       `-- www
|           `-- html
|               `-- ganglia         ←gangliaのソース中にあるwebディレクトリ以下全部
|                   |-- index.php
|                   |-- 省略
|                   `-- version.php.in
`-- rpm
    |-- BUILD
    |-- RPMS
    |-- SOURCES
    |-- SPECS
    |   `-- ganglia-conf-1.0.spec
    `-- SRPMS

そして、homeディレクトリに上に示したrpmディレクトリを示すファイル「.rpmmacros」
を作ります。
$ echo "%_topdir /home/so-net/rpm" > .rpmmacros

そして、以下のようにtarファイルをSOURCES以下に作成します。
$ tar czvf rpm/SOURCES/ganglia-conf-1.0.tar.gz ganglia-conf-1.0

最後にrpmbuildコマンドでspecファイルを指定すればrpm/RPMS以下にrpmファイルが作られます。
$ rpmbuild -ba rpm/SPECS/ganglia-conf-1.0.spec

次回は、Hadoopノード側のインストール。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。