使用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 ...
随机推荐
- excel曲线拟合怎么弄
在做社会调研或科学实验时常常需要把得到的实验数据拟合成曲线图,这样可以使结果形象易懂.下面将介绍怎么用excel来快速地进行曲线拟合.包括添加平滑曲线,线性,指数,幂,多项式(如二次曲线,三次曲线.. ...
- For xml path
Select * from tb for xml path('') 特点: 1. 以xml形式展示查询数据. 2. 自定义数据展示类型. 实例: 1. Select * from tb for xml ...
- 如何取Android设备日志
安装Android SDK 运行 adb 命令 adb devices 查看链接的设备 adb logcat 日志相关
- bk. 2014.12.1
typedef void (*halKeyCback_t) (uint8 key, uint8 state) 表示定义halKeyCBack_T为指向函数的指针,该函数的特点是形参(uint8,uin ...
- SQL Server中常用的SQL语句(转):
SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...
- 10-Java 网络通信
(一) Java中的XML操作 1.XML数据格式简介: (1)XML,即可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,一种用于标记电子文件使其具有结 ...
- LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法
介绍 ·Select - Select选择:延迟 ·Where - Where查询:延迟 ·OrderBy - 按指定表达式对集合正序排序:延迟 ·OrderByDescend ...
- vim全选,全部复制,全部删除
全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入V ...
- 使用C#访问SQLLite
1.SQLLite如何集成在C#中 2.相关C#与SQLLite资源,及说明 3.简单示例
- rsync+sersync实现文件实时同步
前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...