ganglia监控hadoop集群配置

Posted owen-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ganglia监控hadoop集群配置相关的知识,希望对你有一定的参考价值。

1:ganglia简介

ganglia是UC Berkeley发起的一个开源集群监控项目,设计用于测量和监控数以千计的节点。 主要是采用监控系统性能,如cpu,内存,硬盘使用率,I/O负载,网络流量情况等。 ganglia采用多层次的结构模式,是的ganglia可以实现良好的扩展。 gmond带来的负载非常少,这使得它成为在集群中各台计算机上运行的 一段代码,而不会影响用户性能。

2:ganglia的组件

ganglia监控套件主要包括三个部分: gmond gmetad web接口,通常被称为ganglia-web 模型:

2.1:gmond简介:

gmond:是一个守护进程,运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或者单播通道上的统计信息。 如果作为发送者(mute=no),会收集基本指标,比如系统负载(load_one),cpu利用率。 如果作为接受者(deaf=no),会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中

2.2:gmetad简介:

也是一个守护进程; 他会定期检查gmond,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。 也可以查询多个集群并聚合指标。

2.3:ganglia_web简介

一般安装在有gmetad运行的机器上,以便读取RRD文件。 浏览web页面时调用php脚本,从RRDTool数据库中抓取信息,动态生成各类性能监控图表。

3:ganglia安装:

3.1:主节点安装:

  • epel包的安装:yum install -y epel-release(解决不能yum安装某些安装包的问题)
  • gmetad的安装:yum install -y ganglia-gmetad ganglia-devel 
  • gmond的安装:yum install -y ganglia-gmond
  • rrdtool的安装:yum install -y rrdtool
  • httpd服务器的安装:yum install -y httpd
  • ganglia-web及php安装:yum install -y ganglia-web php

3.2:从节点安装:

  • yum -y install epel-release
  • yum -y install ganglia-mond

3.3:安装配置目录 

  • ganglia配置文件目录:/etc/ganglia
  • rrd数据库存放目录:/var/lib/ganglia/rrds
  • httpd主站点目录:/var/www/html
  • ganglia-web安装目录:/usr/share/ganglia
  • ganglia-web配置目录:/etc/httpd/conf.d/ganglia.conf
  • ganglia网站目录:/usr/share/ganglia

4:ganglia配置

注:集群环境:
ServerNameHadoop ClusterZookeeperHBase Cluster
server1Name node & Resource manager,secondary name nodeyesmaster
server2Data node & Node manageryesRegion server
server3Data node & Node manageryesRegion server
server4Data node & Node manageryesRegion server

4.1:配置gmond.conf

配置文件位于/etc/ganglia/gmond.conf 主节点配置:
cluster 
  name = "hadoop cluster"
  ...

udp_send_channel 
  # the host who gather this cluster's monitoring data and send these data   to gmetad node
  #注释掉多播模式的,以下出现这个都要注释掉
 #mcast_join = 239.2.11.71
 #添加单播模式的
 host = server1 
 port = 8649

udp_recv_channel 
  port = 8649

tcp_accept_channel 
  port = 8649
监控节点配置:
cluster 
  name = "hadoop cluster"
#name随意取,但是保证每个节点的名字相同
  ...

udp_send_channel 
  # the host who gather this cluster's monitoring data and send these data   to gmetad node
 host = server1
#注释掉组播,添加host=server1(主节点的主机名)
 port = 8649

udp_recv_channel 
  port = 8649
#注释掉多余的,留下端口即可

tcp_accept_channel 
  port = 8649

4.2:修改ganglia-web的访问权限

修改/etc/httpd/conf.d/ganglia.conf 
  Alias /ganglia /usr/share/ganglia 
  <Location /ganglia>
   Require all granted   
   #Require ip 10.1.2.3   
   #Require host example.org 
  </Location>

4.3:配置gmetad

只需要在主节点配置。
data_source "Hadoop cluster" server1:8649 server2:8649 server3:8649 server4:8649
data_source:此参数定义了集群的名字,以及集群中的节点,

5:hadoop配置:

主节点配置(注释掉里面的内容直接粘贴修改 配置文件:hadoop配置文件目录下的hadoop-metrics2.properties
namenode.sink.ganglia.servers=server1:8649
resourcemanager.sink.ganglia.servers=server1:8649
mrappmaster.sink.ganglia.servers=server1:8649
jobhistoryserver.sink.ganglia.servers=server1:8649
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.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

从节点配置:
datanode.sink.ganglia.servers=server1:8649
nodemanager.sink.ganglia.servers=server1:8649
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.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

6:Hbase配置

(注释掉里面的内容直接粘贴修改) 配置文件:hbase配置文件目录下的hadoop-metrics2.properties 每个节点均如下配置
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31  
*.sink.ganglia.period=10  
hbase.sink.ganglia.period=10  
hbase.sink.ganglia.servers=server1:8649
hbase.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
hbase.period=10
hbase.servers==server1:8649
jvm.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
jvm.period=10
jvm.servers==server1:8649
rpc.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
rpc.period=10
rpc.servers==server1:8649


7:ganglia启动:

  主节点的启动

#  start httpd, gmetad, gmond

$ systemctl start httpd.service

$ systemctl start gmetad.service

$ systemctl start gmond.service

$ systemctl enable httpd.service

$ systemctl enable gmetad.service

$ systemctl enable gmond.service

 被监测节点的启动

#  start gmond

#systemctl enable gmond.service

#systemctl start gmond.service


8验证:

浏览器访问 namenodeip/ganglia 即可

效果如图



以上是关于ganglia监控hadoop集群配置的主要内容,如果未能解决你的问题,请参考以下文章

Ganglia环境搭建并监控Hadoop分布式集群

大数据高可用集群环境安装与配置(08)——安装Ganglia监控集群

部署Ganglia监控Hadoop&Hbase

使用ganglia做集群监控(单播,组播双实例)

Linux集群监控工具简介:Ganglia和Nagios

在OpenStack集群中安装Ganglia监控