关于Hadoop集成Ganglia相关问题

surpassli 2012-08-25

最近为了更好地监控Hadoop集群,所以采用了目前通用的ganglia来监控。但是在集成的过程中,发现了一些问题,但是在网上的相关资料介绍的很不清楚。

再次把我亲自操作的流程在进行梳理下,希望有帮助。

这里不在介绍如何安装ganglia了,主要问题就是集中在集成上面。

版本使用情况如下:

ganglia是3.1版本以上

hadoop是1.0.3的版本

在集成的过程中,主要需要关注两个配置文件:

第一个:hadoop-metrics2.properties

第二个:gmond.conf

这两个文件在每台机器上面都有的(包括master和slave)。第一个文件在$HADOOP_HOME/conf目录下,第二个文件一般在/etc/ganglia目录下面(如果不在,就查下安装在那里)

hadoop集成主要是修改hadoop-metrics2.properties文件,该文件已经存在模板了,只要把相关注释去掉即可,内容如下(以master为例):

# 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:8654

#datanode.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

jobtracker.sink.ganglia.servers=239.2.11.71:8654

#tasktracker.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

#maptask.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

#reducetask.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

 

该文件里后面的六行中,我只去掉了namenode.sink.ganglia.servers和jobtracker.sink.ganglia.servers这两个注释段,如果是slave,就反之。如下:

#namenode.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

datanode.sink.ganglia.servers=239.2.11.71:8654

#jobtracker.sink.ganglia.servers=yourgangliahost_1:8649,yourgangliahost_2:8649

tasktracker.sink.ganglia.servers=239.2.11.71:8654

maptask.sink.ganglia.servers=239.2.11.71:8654

reducetask.sink.ganglia.servers=239.2.11.71:8654

 

这里再说下server里的IP和端口,是从哪里获取的,就是从我刚才介绍的第二个文件里获取,网上很多资料在介绍的过程中,并没有说明这个,第二个内容截取部分内容如下:

udp_send_channel {
  #bind_hostname = yes # Highly recommended, soon to be default.
                       # This option tells gmond to use a source address
                       # that resolves to the machine's hostname.  Without
                       # this, the metrics may appear to come from any
                       # interface and the DNS names associated with
                       # those IPs will be used to create the RRDs.
  mcast_join = 239.2.11.71
  port = 8654
  ttl = 1
}

IP就是mcast_join,这个是比较特殊的IP。而端口就是port。所以在集成的过程中,一定要根据实际情况来进行修改。

完成后,重启hadoop,就会出现以下内容,就算是成功了。如图(部分):

关于Hadoop集成Ganglia相关问题

 图1

关于Hadoop集成Ganglia相关问题

图2

关于Hadoop集成Ganglia相关问题

图3

关于Hadoop集成Ganglia相关问题

图4

关于Hadoop集成Ganglia相关问题

图5

相关推荐

wangjunyi / 0评论 2012-06-27