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配置
注:集群环境:ServerName | Hadoop Cluster | Zookeeper | HBase Cluster |
server1 | Name node & Resource manager,secondary name node | yes | master |
server2 | Data node & Node manager | yes | Region server |
server3 | Data node & Node manager | yes | Region server |
server4 | Data node & Node manager | yes | Region 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.propertiesnamenode.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验证:
浏览器访问 namenode的ip/ganglia 即可
效果如图
以上是关于ganglia监控hadoop集群配置的主要内容,如果未能解决你的问题,请参考以下文章