UBUNTU使用Ganglia监控Hadoop集群

Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等指标。

Ganglia的强大在于:ganglia服务端能够通过一台客户端收集到同一个网段的所有客户端的数据,ganglia集群服务端能够通过一台服务端收集到它下属的所有客户端数据。这个体系设计表示一台服务器能够通过不同的分层能够管理上万台机器。

操作系统环境:Ubuntu 11.10 Server x64

集群环境:

namenode 192.168.1.1

datanode1 192.168.1.2

datanode2 192.168.1.3

ganglia的服务端安装在namenode上

$ sudo apt-get install  ganglia-monitor ganglia-webfront gmetad

安装脚本可能会出错,解决方法是执行以下语句在ganglia用户组下添加用户ganglia:

$ sudo useradd ganglia -g ganglia

在/etc/ganglia/下会产生一个gmond.conf的配置文件。

在这个配置文件中先找到setuid = yes,改成setuid =no;然后找到在cluster块中的name,改成name =”hadoop-test”;

其他都不用改了,保存以后重启gmond服务;

二、安装服务器端

1.首先安装rrdtool

$ sudo apt-get install rrdtool

修改/etc/ganglia/gmetad.conf配置文件。

在这个配置文件中主要是增加一些datasource,即被监控的机器的列表。在文件末行加入

data_source “hadoop-test” namenode:8649 datanode1:8649 datanode2:8649

其中”hadoop-test”是集群名称,呆会要和客户端的gmond中配置的name要一致,后面多个机器名的话用空格隔开就可以了

配置过配置文件以后,需要重启gmetad来应用配置。

$ sudo /etc/init.d/gmetad restart

$ sudo /etc/init.d/ganglia-monitor restart

3.配置web

将ganglia的文件链接到apache的默认目录下

$ sudo ln -s /usr/share/ganglia-webfront /var/www/ganglia

现在重启动apache

$ sudo /etc/init.d/apache2 restart

启动成功后,通过访问http://namenode/ganglia就可以看到ganglia的首页了。

三、配置hadoop文件

找到hadoop根目录下的conf文件夹下的hadoop-metrics.properties文件

改成如下内容

# Configuration of the “dfs” context for ganglia

dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext

dfs.period=10

dfs.servers=239.2.11.71:8649

# Configuration of the “mapred” context for ganglia

mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext

mapred.period=10

mapred.servers=239.2.11.71:8649

# Configuration of the “jvm” context for ganglia

jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext

jvm.period=10

jvm.servers=239.2.11.71:8649

注:239.2.11.71这个是ganglia用的多播的地址,不需要改成gmetad的服务器地址

如果需要监控hbase的话,也一样找到hbase目录下的这个文件,改法一样就不重复了。 改完以后将配置文件分发到各个datanode节点的${HADOOP_HOME}/conf目录下,重启Hadoop集群即可。

本文参考了http://www.cnblogs.com/lijun4017/archive/2011/08/11/2135031.html,将服务器环境改为在Ubuntu Server上进行配置。

 

Comments are closed.