利用ganglia来管理两台Hadoop的集群

需求(之前搭建的hadoop的两台集群):

系统:CentOS6.2 32bit

Hadoop版本:hadoop-1.0.0

ganglia版本:ganglia-3.1.7

10.0.11.240      ifrit-master

10.0.11.241      ifrit-slave1  

安装

可以这么说百度一搜一大堆安装方法。但是都是千篇一律,有且只能见到少部分是自己亲自动手安装后写的文章,这里选择一种简单的来安装

1.安装epel源(系统内置的跟不上时代)【所有计算机都要安装】

    wget http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm -P /usr/local/src  
rpm -ivh /usr/local/src/epel-release-6-5.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


2.安装ganglia

2.1 ganglia服务器端需要安装gmetad和gmond

yum install ganglia ganglia-devel ganglia-gmetad ganglia-gmond ganglia-web ganglia-gmond-python

使用yum 安装时候,会自动安装相关的依赖包,这个比自己编译方便多了。

2.2 ganglia客户端需要安装gmond

yum install ganglia ganglia-gmond 

3.配置ganglia

 3.1配置gmetad

    cd /etc/ganglia  
vi gmetad.conf
data_source "ganglia_hadoop" 10.0.11.240 10.0.11.241

注意这里ganglia_hadoop这个名字下面要用,其次后面的ip地址多个用空格隔开(不填端口号表示使用默认8469)

3.2配置gmond

    vi /etc/ganglia/gmond.conf  
cluster {
name = "ganglia_hadoop"
...

这里的name就是之前一步配置gmetad里面的data_source后面双引号里面的字符串,所有客户端(gmond)都要配置!!!


4.配置Hadoop

修改hadoop目录下的 conf文件夹下的hadoop-metrics2.properties

# syntax: [prefix].[source|sink|jmx].[instance].[options]
# See package.html for org.apache.hadoop.metrics2 for details

*.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink

#namenode.sink.file.filename=namenode-metrics.out

#datanode.sink.file.filename=datanode-metrics.out

#jobtracker.sink.file.filename=jobtracker-metrics.out

#tasktracker.sink.file.filename=tasktracker-metrics.out

#maptask.sink.file.filename=maptask-metrics.out

#reducetask.sink.file.filename=reducetask-metrics.out


#
# Below are for sending metrics to Ganglia
#
# for Ganglia 3.0 support
# *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink30
#
# 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

这个只需要将有关ganglia相关的语句前面的‘#’号注释去除就可以了。注意:这是选择的是ganglia3.1版本如果你使用的是3.0的话请去除3.0版本前面注释,切记不要选错。



至此已经修改完成,这是需要做的就是:

重启hadoop

ganglia服务器端需要运行:

service gmetad start  
chkconfig gmetad on
service gmond start 

service httpd start

ganglia客户端需要运行:

service gmond start 

赶紧在您的本机的浏览器里面输入http://localhost/ganglia来访问吧。

问:为什么是本机呢?

答:由于默认安装好之后apahce配置是允许本机访问,如果修改这个限制可以修改/etc/httpd.d/ganglia.conf文件,

     参考如下:这里是让IP地址为10.0.11.188也能访问。

  #
# Ganglia monitoring system php web frontend
#

Alias /ganglia /usr/share/ganglia

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

总结:网站资料一大堆,真的不如自己亲手做一遍,有人说要关闭selinux,这个我早就关闭了,还有防火墙对于新手也最好关闭的。由于时间的问题,或许有点小的错误,还原拍砖大家共同进步!

后记

  这个selinux还是要关闭的,防火墙也要关闭的。

备注SELINUX关闭的方法:

vi /etc/sysconfig/selinux
把SELINUX=enforcing改成:
SELINUX=disabled
然后重启,网上有免重启的,但是重启之后还要设置。所以还不如一次性设置后,以后重启就无后顾之忧。

本文已经整理并发布到我个人博客,欢迎访问!
本文章地址:http://jtx.me/2012/07/22/use-ganglia-to-manage-two-hadoop-cluster/

posted @ 2012-02-07 13:27  童同  阅读(664)  评论(0编辑  收藏  举报