使用Ganglia监控Hadoop集群

0 环境 1 安装Ganglia 1.1 添加EPEL软件仓库 1.2 Ganglia服务器端安装 1.3 Ganglia客户端安装 2 配置Ganglia 2.1 监控端配置 2.2 服务器端 2.3服务器端Apache配置 3 配置Hadoop metrics

0 环境

操作系统:CentOS 6.2 

hadoop版本:hadoop-1.0.1

集群中三台机器:

192.168.137.101        namenode

192.168.137.103        datanode1

192.168.137.104        datanode2 

1 安装Ganglia 1.1 添加EPEL软件仓库

CentOS官方软件仓库中没有Ganglia,而Ganglia依赖又太多,本人花了一天时间才把它的一个依赖项rrdtool安装好。后来放弃源码安装,改用yum。添加仓库的方法参考: 。需要注意的是,EPEL安装包的地址已经发生了变化,链接中的下载地址已经不适用,可以google一下最新的地址。还要注意匹配操作系统的版本。

1.2 Ganglia服务器端安装

Ganglia服务器端收集监控端信息,并提供访问接口,使用以下命令安装:

yum install ganglia ganglia-devel ganglia-gmetad ganglia-gmond ganglia-web ganglia-gmond-Python 1.3 Ganglia客户端安装 $ yum install ganglia ganglia-gmond 2 配置Ganglia 2.1 监控端配置 $ vim /etc/ganglia/gmond.conf

将cluster选项中 name设置为gmetad中data_source指定的名称即可。

$ service gmond start 2.2 服务器端

$ sudo vim /etc/ganglia/gmetad.conf

data_source "hdfs" datanode1 datanode2

只需要更改 data_source一行,"hdfs"代表集群的名字,datanode1,datanode2,就是要监控的机器列表。默认端口8649。

启动服务

service gmetad start
chkconfig gmetad on 2.3服务器端Apache配置

vim /etc/httpd/conf.d/ganglia.conf

Alias /ganglia /usr/share/ganglia

<Location /ganglia>
Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# Allow from ::1
Allow from all
# Allow from .example.com
</Location>

测试用的话可以做如上配置。

打开浏览器: 。

如果出现错误:There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied 

则需要关闭selinux:vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;该方法需要重启机器。

可以使用命令setenforce 0来关闭selinux而不需要重启,刷新页面,即可访问!但此方法只是一权宜之计。要想永久修改selinux设置,还是要使用第一种方法。

3 配置Hadoop metrics

hadoop-1.0.1的配置文件为: hadoop-1.0.1/conf/hadoop-metrics2.properties。我安装的Ganglia为版本为3.1,找到配置文件中for Ganglia 3.1 support。将需要监控的项目前面注释去掉,*.servers的配置为 239.2.11.71:8649,这个地址是Ganglia的广播地址,是固定的。

# for Ganglia 3.1 support
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

*.sink.ganglia.period=10

# default for supportsparse is false
*.sink.ganglia.supportsparse=true

*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40

namenode.sink.ganglia.servers=239.2.11.71:8649

datanode.sink.ganglia.servers=239.2.11.71:8649

jobtracker.sink.ganglia.servers=239.2.11.71:8649

tasktracker.sink.ganglia.servers=239.2.11.71:8649

maptask.sink.ganglia.servers=239.2.11.71:8649

reducetask.sink.ganglia.servers=239.2.11.71:8649

重启集群即可。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/276c6f759d3d5aa75264cfe41b17eded.html