Ubuntu Server 14.04 安装配置Ganglia监控Hadoop

今天配置了Ganglia来监控Hadoop和Hbase,这里做一下简单的记录。

ganglia主要有两个进程,它们是:gmond和gmetad。集群内的节点,通过运行gmond收集发布节点状态信息,然后gmetad周期性的轮询gmond收集到的信息,然后存入rrd数据库,通过web服务器可以对其进行查询展示。

1.首先,选择一台服务器来运行gmetad和apache服务器(主节点)。

1.1 运行如下的命令安装必要的软件。

sudo apt-get install ganglia-monitor rrdtool gmetad ganglia-webfrontend
1.2 配置/etc/ganglia/gmetad.conf文件
安装完成后,编辑/etc/ganglia/gmetad.conf文件,修改data_source,“cyber_space”是我给集群取的名字,后面跟着要监控的主机的名称。可以在主机后添加端口信息,这些规则在配置文件的注释中写的比较详细。

# data_source "my cluster" 10 localhost  my.machine.edu:8649  1.2.3.5:8655
# data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651
# data_source "another source" 1.3.4.7:8655  1.3.4.8

data_source "cyber_space" namenode

因为是单播,所以datasource配置成namenode,表示gmeta只从namenode上读取节点数据


2.配置被监控的节点(从节点)

2.1 使用如下的命令安装gmond。

sudo apt-get install ganglia-monitor
我这里也需要监控gmeta运行的节点,所以在第一步中,也安装了ganglia-monitor。

2.2 配置/etc/ganglia/gmond.conf文件

首先,需要将cluster块中的name改为我们集群的名称,如下所示:

cluster {
  name = "cyber_space"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
集群中,我们使用单播模式,即所有被监控的节点,都会将信息发送到指定的ip上,所以,需要修改udp_send_channel块,将mcast_join注释,然后添加host,host的值是gmeta运行的节点,如下所示,

udp_send_channel {
  /*mcast_join = 239.2.11.71 */
  host =  192.168.2.160
  port = 8649
  ttl = 1
}
,udp_recv_channel也需要修改为如下所示,将mcast_join和bind注释。

udp_recv_channel {
  /*mcast_join = 239.2.11.71 */
  port = 8649
  /*bind = 239.2.11.71 */
}

3. 重启各项服务

在主节点上运行如下命令重启gmeta和gmond

sudo /etc/init.d/gmetad restart
suod /etc/init.d/ganglia-monitor restart

在从节点上运行如下命令重启gmond

sudo /etc/init.d/ganglia-monitor restart

4. 建立web-frontend到apache目录下的软链接

sudo ln -s /usr/share/ganglia-webfrontend/ /var/www/html/ganglia

5. 在浏览器上打开链接:http://192.168.2.160/ganglia,就能看到下图所示的ganglia监控页面,说明ganglia已经配置成功了

6. 配置Hadoop监控

修改Hadoop的配置文件,HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties,按照下面的内容对配置文件进行修改。

# 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

# Tag values to use for the ganglia prefix. If not defined no tags are used.
# If '*' all tags are used. If specifiying multiple tags separate them with 
# commas. Note that the last segment of the property name is the context name.
#
#*.sink.ganglia.tagsForPrefix.jvm=ProcesName
#*.sink.ganglia.tagsForPrefix.dfs=
#*.sink.ganglia.tagsForPrefix.rpc=
#*.sink.ganglia.tagsForPrefix.mapred=

namenode.sink.ganglia.servers=namenode:8649

datanode.sink.ganglia.servers=namenode:8649

resourcemanager.sink.ganglia.servers=namenode:8649

nodemanager.sink.ganglia.servers=namenode:8649

mrappmaster.sink.ganglia.servers=namenode:8649

这里也是因为采用单播的原因,所以把数据都发送到namenode上,由namenode的gmeta来采集这些数据

修改完后,重启ganglia的服务即可。可看到如下图所示的诸如NameNode,DataNode等信息。







  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值