利用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/