Ganglia监控Hadoop

来源:互联网 发布:eclipse 无法访问网络 编辑:程序博客网 时间:2024/05/01 06:42

Ganglia集群监控配置

操作系统环境:ubuntu-11.04-server-i386

集群环境:

namenode 192.168.1.1

datanode1 192.168.1.2

datanode2 192.168.1.3

安装步骤

1.ganglia的服务端安装在namenode

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

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

$ sudo useradd ganglia -g ganglia

未报错则忽略上述操作)

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

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

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

2.安装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的首页了。备注:如果重启apache失败需要在/etc/apache2/apache2.conf中最后面添加ServerName YourHostName

4.安装datanode客户端

$ sudo apt-get install ganglia-monitor

同第一步配置gmond.conf(也可将namenode的gmond.conf复制到其他被监控的节点机中/etc/ganglia/

5. 配置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集群即可。

 

注:默认配置下,Ganglia会把所有东西放在一个Grid里面,也就是一个网格。大的集群,不分组。但是真实的服务器集群有各种功能,每个群分管不同的事务,全放一起就太乱了。也不好识别,所以需要分组使用。Ganglia的分组很简单,就是分端口,不同的组配置不同的监听端口。在gmetad.conf中为不同组分配不同端口(默认8649)。【有时会出现ganglia监控到其他集群的机器,原因就可能是2个cluster使用了同一端口,为不同cluster分配不同端口即可解决。

 

原创粉丝点击