使用Ganglia监控hadoop、hbase
Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等指标。
Ganglia的强大在于:ganglia服务端能够通过一台客户端收集到同一个网段的所有客户端的数据,ganglia集群服务端能够通过一台服务端收集到它下属的所有客户端数据。这个体系设计表示一台服务器能够通过不同的分层能够管理上万台机器。这个功能是其他mrtg,nagios,cacti所不能比拟的。
Ganglia是UC Berkeley发起的一个开源实时监视项目,用于测量数以千计的节点,为云计算系统提供系统静态数据以及重要的性能度量数据。
Ganglia系统基本包含以下三大部分。
Gmond:Gmond运行在每台计算机上,它主要监控每台机器上收集和发送度量数据(如处理器速度、内存使用量等)。
Gmetad:Gmetad运行在Cluster的一台主机上,作为Web Server,或者用于与Web Server进行沟通。
Ganglia Web前端:Web前端用于显示Ganglia的Metrics图表。
Hadoop和HBase本身对于Ganglia的支持非常好。通过简单的配置,我们可以将Hadoop和HBase的一些关键参数以图表的形式展现在Ganglia的Web Console上。这些对于我们
洞悉Hadoop和HBase的内部系统状态有很大的帮助。
Ganglia工作原理和结构:


gmetad端口:8651、8652...
gmond端口: 8649
一、ganglia安装:
1、准备好epel源,首先在master上安装
# yum install ganglia ganglia-gmetad ganglia-gmond ganglia-web -y
2、在各个slave端安装 ganglia-mond
# yum install ganglia-gmond -y
二、ganglia配置:
1、vim /etc/ganglia/gmetad.conf #收集来自各个节点上的信息并存储在RRDtool上
data_source "myhadoop" 10.0.10.60
2、vim /etc/ganglia/gmond.conf
cluster {
name = "myhadoop"
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
.............
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 = 10.0.10.60 #仅多播方式multicast
port =
ttl =
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
#mcast_join = 239.2.11.71
port =
#bind = 239.2.11.71
retry_bind = true
# Size of the UDP buffer. If you are handling lots of metrics you really
# should bump it up to e.g. 10MB or even higher.
# buffer =
}
将默认的多播地址改为master地址,将udp_recv_channel 的2个IP注释掉。
3、vim /etc/httpd/conf.d/ganglia.conf
#
# Ganglia monitoring system php web frontend
# Alias /ganglia /usr/share/ganglia <Location /ganglia>
Order deny,allow
Allow from all
Allow from 127.0.0.1
Allow from ::
# Allow from .example.com
</Location>
将Deny from all 改为Allow from all,否则在页面访问时有权限问题
4、vim /etc/php.ini
date.timezone = Asia/Shanghai
5、启动ganglia
# ln -s /usr/local/rrdtool/bin/rrdtool /usr/bin/rrdtool
# service httpd start
# service gmond start
# service gmetad start
6、从页面访问 http://10.0.10.60/ganglia
一些注意问题:
1、gmetad收集到的信息被放到/var/lib/ganglia/rrds/
2、可以通过以下命令检查是否有数据在传输
# tcpdump port 8649
3、错误日志可以查看 /var/log/httpd/error_log
三、配置Hadoop与hbase
1、hadoop有两个配置文件hadoop-metrics.properties和hadoop-metrics2.properties
hadoop-metrics.properties:用于hadoop与3.1版本以前的ganglia集成做监控的配置文件(在ganglia3.0到3.1的过程中,消息的格式发生了重要的变化,不兼容之前的版本)
hadoop-metrics2.properties:用于hadoop与3.1版本以后的ganglia集成做监控的配置文件(本文采用此配置文件)
# vim hadoop-metrics2.properties
*.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink
*.period=
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=,jvm.metrics.memHeapUsedM=
namenode.sink.ganglia.servers=master60:
datanode.sink.ganglia.servers=slave1:,slave62:
完整内容如下:
# syntax: [prefix].[source|sink].[instance].[options]
# See javadoc of package-info.java for org.apache.hadoop.metrics2 for details *.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink
# default sampling period, in seconds
*.period= # The namenode-metrics.out will contain metrics from all context
#namenode.sink.file.filename=namenode-metrics.out
# Specifying a special sampling period for namenode:
#namenode.sink.*.period= #datanode.sink.file.filename=datanode-metrics.out #resourcemanager.sink.file.filename=resourcemanager-metrics.out #nodemanager.sink.file.filename=nodemanager-metrics.out #mrappmaster.sink.file.filename=mrappmaster-metrics.out #jobhistoryserver.sink.file.filename=jobhistoryserver-metrics.out # the following example split metrics of different
# context to different sinks (in this case files)
#nodemanager.sink.file_jvm.class=org.apache.hadoop.metrics2.sink.FileSink
#nodemanager.sink.file_jvm.context=jvm
#nodemanager.sink.file_jvm.filename=nodemanager-jvm-metrics.out
#nodemanager.sink.file_mapred.class=org.apache.hadoop.metrics2.sink.FileSink
#nodemanager.sink.file_mapred.context=mapred
#nodemanager.sink.file_mapred.filename=nodemanager-mapred-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= # 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=,jvm.metrics.memHeapUsedM= # 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=master60: datanode.sink.ganglia.servers=slave1:,slave62: #resourcemanager.sink.ganglia.servers=yourgangliahost_1:,yourgangliahost_2: #nodemanager.sink.ganglia.servers=yourgangliahost_1:,yourgangliahost_2: #mrappmaster.sink.ganglia.servers=yourgangliahost_1:,yourgangliahost_2: #jobhistoryserver.sink.ganglia.servers=yourgangliahost_1:,yourgangliahost_2:
2、重启hadoop,在主NameNode节点上执行:
# /usr/local/hadoop/sbin/stop-all.sh
# /usr/local/hadoop/sbin/start-all.sh
3、重启所有Gmod端:
# service gmond restart
详细gmond.conf各参数参考资料:http://book.2cto.com/201309/32329.html
四、监控spark
支持Ganglia的Sink类别: GangliaSink
由于Licene的限制,默认没有放到默认的build里面,如果需要使用,需要自己编译
| 名称 | 默认值 | 描述 |
|---|---|---|
| class | org.apache.spark.metrics.sink.GangliaSink | Sink类 |
| host | NONE | Ganglia 服务器的主机名或multicast group |
| port | NONE | Ganglia服务器的端口 |
| period | 10 | 轮询间隔 |
| unit | seconds | 轮询间隔的单位 |
| ttl | 1 | TTL of messages sent by Ganglia |
| mode | multicast | Ganglia网络模式('unicast' or 'multicast') |
参考资料:http://huaxin.blog.51cto.com/903026/1841208
使用Ganglia监控hadoop、hbase的更多相关文章
- Ganglia监控Hadoop集群的安装部署[转]
Ganglia监控Hadoop集群的安装部署 一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机 器:192.168.52 ...
- Ganglia 监控Hadoop
Ganglia监控Hadoop集群的安装部署 一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机 器:192.168.52 ...
- 使用ganglia监控hadoop及hbase集群
一.Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...
- 第十二章 Ganglia监控Hadoop及Hbase集群性能(安装配置)
1 Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...
- 使用ganglia监控hadoop及hbase集群 分类: B3_LINUX 2015-03-06 20:53 646人阅读 评论(0) 收藏
介绍性内容来自:http://www.uml.org.cn/sjjm/201305171.asp 一.Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测 ...
- Ganglia监控Hadoop集群的安装部署
一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机器:192.168.52.31,192.168.52.32,192.16 ...
- Ubuntu 14.10 下Ganglia监控Hadoop集群
前提是已经安装好Ganglia和Hadoop集群 1 Master节点配置hadoop-metrics2.properties # syntax: [prefix].[source|sink|jmx] ...
- 【Hadoop】用 Ganglia 监控hadoop集群
随着数据中心的增长和管理人员的缩减,对计算资源使用有效监视工具的需求变得比以往更加迫切.术语监视 在应用到数据中心时可能会让人混淆,因为它的含义会根据具体的说话者和听众而有所不同.例如: 在集群中运行 ...
- prometheus 监控 hadoop + Hbase + zookeeper
1. run JMX exporter as a java agent with all the four daemons. For this I have added EXTRA_JAVA_OPTS ...
随机推荐
- java中的final关键词
参考资料: http://www.cnblogs.com/dolphin0520/p/3736238.html final是个修饰词,可以修饰类.方法.变量. 1. 修饰类 修饰类,就表示这个类不能被 ...
- iOS常用设计模式和机制之Block简单使用
Block :block 实际上就是 Objective-C语言对闭包的实现 闭包(Closure):闭包就是一个函数,或者一个指向函数的指针,加上这个函数执行的非局部变量.闭包允许一个函数访问声明该 ...
- ural 1057Amount of Degrees ——数位DP
link:http://acm.timus.ru/problem.aspx?space=1&num=1057 论文: 浅谈数位类统计问题 刘聪 #include <iostream&g ...
- 《C与指针》第三章练习
本章问题 1.What is the range for characters and the various integer types on your machine? (在你的机器上,字符型和整 ...
- 自定义webkit搜索框样式
好吧,这是个有点儿蛋疼的文章,每个浏览器都可以有自己的行为和表现,只是webkit在apple的带领下,在UI上走的更远了一点儿,但是却给我们带来了点儿困扰,因为很多情况下,我们希望搜索框在所有的浏览 ...
- JAVA自定义事件监听完整例子---sunfruit[转]
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f733628a854d2c90c05f9313071601 ...
- [solr] - Facet - autocomplete
Solr的facet可以用于一般性的前缀式自动完成功能,当然,它的主要功能是用于做统计.分类.区间等. 统计.分类.区间功能,可参考下文: http://hongweiyi.com/2013/03/a ...
- Delphi下16进制位图数据转位图
如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: ? 1 2 3 4 5 6 7 8 9 10 1 ...
- 一篇关于SpringMVC 传统文件上传的方法
一.界面效果 二.html代码 <legend>上传APK文件</legend> <form action="<%=basePath%>/apks/ ...
- 源码阅读笔记 - 1 MSVC2015中的std::sort
大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格 ...