hadoop0.20.2,打了补丁以后,可以支持Ganglia3.X的监控。
如果不打补丁,就无法支持Ganglia3.X了。
安装说明等,完整下载地址:http://pan.baidu.com/s/1hqehLp6
1.用rpm检测依赖包情况
rpm -q gcc glibc glibc-common rrdtool rrdtool-devel apr apr-devel expat expat-devel pcre pcre-devel dejavu-lgc-sans-mono-fonts dejavu-sans-mono-fonts
2.下载安装缺失的依赖包
yum install apr-devel
yum install expat-devel
yum install pcre-devel
yum install ruby
rrdtool-perl依赖包:
perl-Time-HiRes-1.9724-1.el6.rfx.x86_64.rpm
下载后直接安装 rpm -ivh xxx.rpm
安装rddtool
下载地址: http://packages.express.org/rrdtool/
需要三个rpm包一起安装,并且三个rpm包必须是同一个版本号。
rrdtool-1.4.5-1.el6.wrl.x86_64.rpm
rrdtool-devel-1.4.5-1.el6.wrl.x86_64.rpm
rrdtool-perl-1.4.5-1.slc6.wrl.x86_64.rpm
安装httpd (需要先安装apr apr-util)
tar -zxf httpd-2.2.23.tar.gz
cd httpd-2.2.23
./configure --prefix=/opt/apache
make && make install
安装php
tar -zxf php-5.5.14.tar.gz
cd php-5.5.14
###./configure --prefix=/usr/local/php --with-apxs2=/opt/apache/bin/apxs --with-mysql=/usr/include/mysql
./configure --prefix=/usr/local/php --with-apxs2=/opt/apache/bin/apxs --with-mysql
make && make install
安装ganglia core
依赖libconfuse包
libconfuse-2.5-4.el5.x86_64.rpm
libconfuse-devel-2.5-4.el5.x86_64.rpm
要注意的是,Ganglia在安装时默认不安装gmetad,所以需要在configure时指定:--with-gmetad,还需要指定RRDTool库的路径:--with-librrd=… !
tar -zxf ganglia-3.1.7.tar.gz
cd ganglia-3.1.7
./configure --prefix=/usr/local/ganglia --with-gmetad --with-librrd=/usr/local/lib --enable-gexec --with-python=/usr --sysconfdir=/etc/ganglia
make && make install
安装ganglia-web
ganglia-web-3.5.7.tar.gz
tar -zxvf ganglia-web-3.5.7.tar.gz
启动httpd服务
/opt/apache/bin/apachectl start (重启 restart)
查看httpd进程:
ps -aux | grep httpd
打开IP地址80端口,看到It works!
vi /usr/local/apache2/htdocs/index.php 添加:
phpinfo();
?>
访问:http://10.0.37.64/index.php,访问成功!
配置Ganglia
*配置gmetad (主节点配置)
拷贝配置文件
cd /home/support/ganglia-3.1.7
cp ./gmetad/gmetad.init /etc/init.d/gmetad
cp ./gmetad/gmetad.conf /usr/local/ganglia/etc
cp ./gmond/gmond.init /etc/init.d/gmond
vi /etc/init.d/gmetad --修改如下内容
GMETAD=/usr/local/ganglia/sbin/gmetad
vi /etc/init.d/gmond --修改如下内容
GMOND=/usr/local/ganglia/sbin/gmond
将gmetad服务,gmond服务,设为开机自动运行
chkconfig --add gmond && chkconfig gmond on
chkconfig --add gmetad && chkconfig gmetad on
生成gmond默认配置文件:
cd /home/support/ganglia-3.1.7
./gmond/gmond -t | tee /etc/ganglia/gmond.conf
配置Ganglia Web 路径必须这么配置,是Ganglia gmetad的路径配置,否则gmetad进程会启动失败
mkdir -p /var/www/html/ganglia
cp -r /home/support/ganglia-3.1.7/web/* /var/www/html/ganglia/
mkdir -p /var/lib/ganglia/rrds
chown nobody:nobody /var/lib/ganglia/rrds
创建? web前端配置文件/var/www/html/conf.php,指定gmetad中存储rrd图形的目录,以及rrdtool的位置:
$gmetad_root = "/var/lib/ganglia";
$rrds = "$gmetad_root/rrds";
define("RRDTOOL", "/usr/local/bin/rrdtool");
(A)配置服务端gmetad.conf文件
服务器端配置文件gmetad.conf,主要是配置data_source参数。它设定了被监控端服务器的地址及端口,可以指定多个被监控端服务器:
vi /etc/ganglia/gmetad.conf
data_source "hadoop" 10 localhost
gridname "hadoop status" /*设置一个web前端显示的名称,随意命名。
修改port
The port gmetad will answer request for XML
default 8651 /* 开启端口 */
service gmetad start
(B)配置客户端gmond.conf文件
gmond.conf包括了几个部分:globals、cluster、udp_send_channel、udp_recv_channel等,
如果只是想要Ganglia简单地运行,两个操作就可以了,两个操作都是在cluster配置段中进行修改
命名一个cluster名称,名称与gmetad.conf中的data_source保持一致。我的命名:name = "hadoop"
修改tcp_accept_channel配置段如下:
01.tcp_accept_channel {
02. port = 8649
03. acl {
04. default = "deny"
05. access {
06. ip = 10.0.37.64 /*这里用来监控服务器的地址
07. mask = 32
08. action = "allow"
09. }
10. }
11.}
service gmond start //不配置acl,ip地址,可以启动成功,先测测
测试进程是否运行成功
telnet localhost 8649 # 检查gmond进程,如果出现XML就对了
telnet localhost 8651 # 检查gmetad进程,如果出现XML就对了
service gmond restart
service gmetad restart
cd /opt/apache/bin
./apachectl -k restart
注意修改$HADOOP_HOME/conf/hadoop-metrics.properties
dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
dfs.period=10
dfs.servers=239.2.11.71:8649
端口是gmond默认的端口
效果图:
refer to:http://hi.baidu.com/hovlj_1130/blog/item/e8fe89c3e9a67e160ff47755.html
完整下载地址:
http://pan.baidu.com/s/1hqehLp6