`

使用ganglia监控hadoop及hbase集群

阅读更多

一、Ganglia简介

Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能

1.1 Ganglia组件

Ganglia 监控套件包括三个主要部分:gmond,gmetad,和网页接口,通常被称为ganglia-web。

Gmond :是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息 如果他是一个发送者(mute=no)他会收集基本指标,比如系统负载(load_one),CPU利用率。他同时也会发送用户通过添加C/Python模块来自定义的指标。 如果他是一个接收者(deaf=no)他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。

Gmetad:也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的web前端。

Ganglia-web :顾名思义,他应该安装在有gmetad运行的机器上,以便读取RRD文件。 集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA等,他们都是完全分开的,你需要为每个集群运行单独的gmond实例。

一般来说每个集群需要一个接收的gmond,每个网站需要一个gmetad。

 

图1 ganglia工作流

Ganglia工作流如图1所示:

左边是运行在各个节点上的gmond进程,这个进程的配置只由节点上/etc/gmond.conf的文件决定。所以,在各个监视节点上都需要安装和配置该文件。

右上角是更加负责的中心机(通常是这个集群中的一台,也可以不是)。在这个台机器上运行这着gmetad进程,收集来自各个节点上的信息并存储在RRDtool上,该进程的配置只由/etc/gmetad.conf决定。   

右下角显示了关于网页方面的一些信息。我们的浏览网站时调用php脚本,从RRDTool数据库中抓取信息,动态的生成各类图表。

1.2 Ganglia运行模式(单播与多播)  

Ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。

单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段。

多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。

 

二、安装ganglia

1、拓扑说明
3台主机,分别为:

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. 10.171.29.191 master  
  2. 10.171.94.155  slave1  
  3. 10.251.0.197 slave3  


其中master将gmeta及web,三台机都作gmon
以下步骤均使用root用户执行

2、master上安装gmeta及web

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. yum install ganglia-web.x86_64  
  2. yum install ganglia-gmetad.x86_64  


3、在三台机上都安抚gmond

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. yum install ganglia-gmond.x86_64  


4、在三台机器上配置/etc/ganglia/gmond.conf,修改以下内容:

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. udp_send_channel {  
  2.   #bind_hostname = yes # Highly recommended, soon to be default.  
  3.                        # This option tells gmond to use a source address  
  4.                        # that resolves to the machine's hostname.  Without  
  5.                        # this, the metrics may appear to come from any  
  6.                        # interface and the DNS names associated with  
  7.                        # those IPs will be used to create the RRDs.  
  8.   mcast_join = 10.171.29.191  
  9.   port = 8649  
  10.   ttl = 1  
  11. }  
  12. /* You can specify as many udp_recv_channels as you like as well. */  
  13. udp_recv_channel {  
  14.   #mcast_join = 239.2.11.71  
  15.   port = 8649  
  16.   #bind = 239.2.11.71  
  17. }  


即将默认的多播地址改为master地址,将udp_recv_channel 的2个IP注释掉。

5、在master上修改/etc/ganglia/gmetad.conf
修改data_source,改成:

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. data_source "my cluster” 10.171.29.191  


6、ln -s /usr/share/ganglia /var/www/ganglia
若有问题,可以将/usr/share/ganglia的内容直接复制到/var/www/ganglia

7、修改/etc/httpd/conf.d/ganglia.conf,改成:

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. #  
  2.   # Ganglia monitoring system php web frontend  
  3.   #  
  4.    
  5.   Alias /ganglia /usr/share/ganglia  
  6.   
  7.   <Location /ganglia>  
  8.     Order deny,allow  
  9.     Allow from all  
  10.     Allow from 127.0.0.1  
  11.     Allow from ::1  
  12.     # Allow from .example.com  
  13.   </Location>  

即将    Deny from all 改为    Allow from all,否则在页面访问时有权限问题。

8、启动

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. service gmetad start  
  2. service gmond start  
  3. /usr/sbin/apachectl start  


9、从页面上访问
http://ip/ganglia

一些注意问题:
1、gmetad收集到的信息被放到/var/lib/ganglia/rrds/

2、可以通过以下命令检查是否有数据在传输

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. tcpdump port 8649  



三、配置hadoop与hbase

1、配置hadoop

hadoop-metrics2.properties

 

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. # syntax: [prefix].[source|sink|jmx].[instance].[options]  
  2. # See package.html for org.apache.hadoop.metrics2 for details  
  3.   
  4. *.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink  
  5.   
  6. #namenode.sink.file.filename=namenode-metrics.out  
  7.   
  8. #datanode.sink.file.filename=datanode-metrics.out  
  9.   
  10. #jobtracker.sink.file.filename=jobtracker-metrics.out  
  11.   
  12. #tasktracker.sink.file.filename=tasktracker-metrics.out  
  13.   
  14. #maptask.sink.file.filename=maptask-metrics.out  
  15.   
  16. #reducetask.sink.file.filename=reducetask-metrics.out  
  17. # Below are for sending metrics to Ganglia  
  18. #  
  19. # for Ganglia 3.0 support  
  20. # *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink30  
  21. #  
  22. # for Ganglia 3.1 support  
  23. *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31  
  24.   
  25. *.sink.ganglia.period=10  
  26.   
  27. # default for supportsparse is false  
  28. *.sink.ganglia.supportsparse=true  
  29.   
  30. *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both  
  31. *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40  
  32. menode.sink.ganglia.servers=10.171.29.191:8649  
  33.   
  34. datanode.sink.ganglia.servers=10.171.29.191:8649  
  35.   
  36. jobtracker.sink.ganglia.servers=10.171.29.191:8649  
  37. tasktracker.sink.ganglia.servers=10.171.29.191:8649  
  38.   
  39. maptask.sink.ganglia.servers=10.171.29.191:8649  
  40.   
  41. reducetask.sink.ganglia.servers=10.171.29.191:8649  

 

 

2、配置hbase

hadoop-metrics.properties

 

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. # See http://wiki.apache.org/hadoop/GangliaMetrics  
  2. # Make sure you know whether you are using ganglia 3.0 or 3.1.  
  3. # If 3.1, you will have to patch your hadoop instance with HADOOP-4675  
  4. # And, yes, this file is named hadoop-metrics.properties rather than  
  5. # hbase-metrics.properties because we're leveraging the hadoop metrics  
  6. # package and hadoop-metrics.properties is an hardcoded-name, at least  
  7. # for the moment.  
  8. #  
  9. # See also http://hadoop.apache.org/hbase/docs/current/metrics.html  
  10. # GMETADHOST_IP is the hostname (or) IP address of the server on which the ganglia   
  11. # meta daemon (gmetad) service is running  
  12.   
  13. # Configuration of the "hbase" context for NullContextWithUpdateThread  
  14. # NullContextWithUpdateThread is a  null context which has a thread calling  
  15. # periodically when monitoring is started. This keeps the data sampled  
  16. # correctly.  
  17. hbase.class=org.apache.hadoop.metrics.spi.NullContextWithUpdateThread  
  18. hbase.period=10  
  19.   
  20. # Configuration of the "hbase" context for file  
  21. # hbase.class=org.apache.hadoop.hbase.metrics.file.TimeStampingFileContext  
  22. # hbase.fileName=/tmp/metrics_hbase.log  
  23.   
  24. # HBase-specific configuration to reset long-running stats (e.g. compactions)  
  25. # If this variable is left out, then the default is no expiration.  
  26. hbase.extendedperiod = 3600  
  27.   
  28. # Configuration of the "hbase" context for ganglia  
  29. # Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)  
  30. # hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext  
  31. hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext31  
  32. hbase.period=10  
  33. hbase.servers=10.171.29.191:8649  
  34.   
  35. # Configuration of the "jvm" context for null  
  36. jvm.class=org.apache.hadoop.metrics.spi.NullContextWithUpdateThread  
  37. jvm.period=10  
  38.   
  39. # Configuration of the "jvm" context for file  
  40. # jvm.class=org.apache.hadoop.hbase.metrics.file.TimeStampingFileContext  
  41. # jvm.fileName=/tmp/metrics_jvm.log  
  42.   
  43. # Configuration of the "jvm" context for ganglia  
  44. # Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)  
  45. # jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext  
  46. jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31  
  47. jvm.period=10  
  48. jvm.servers=10.171.29.191:8649  
  49.   
  50. # Configuration of the "rpc" context for null  
  51. rpc.class=org.apache.hadoop.metrics.spi.NullContextWithUpdateThread  
  52. rpc.period=10  
  53.   
  54. # Configuration of the "rpc" context for file  
  55. # rpc.class=org.apache.hadoop.hbase.metrics.file.TimeStampingFileContext  
  56. # rpc.fileName=/tmp/metrics_rpc.log  
  57.   
  58. # Configuration of the "rpc" context for ganglia  
  59. # Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)  
  60. # rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext  
  61. rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31  
  62. rpc.period=10  
  63. rpc.servers=10.171.29.191:8649  
  64.   
  65. # Configuration of the "rest" context for ganglia  
  66. # Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)  
  67. # rest.class=org.apache.hadoop.metrics.ganglia.GangliaContext  
  68. rest.class=org.apache.hadoop.metrics.ganglia.GangliaContext31  
  69. rest.period=10  
  70. rest.servers=10.171.29.191:8649  


重启hadoop与hbae

 

转自:http://blog.csdn.net/jediael_lu/article/details/44104859

 

 

分享到:
评论

相关推荐

    ganglia+hadoop+hbase nagios 学习参考链接

    Ganglia、Hadoop和HBase都是大数据领域的重要组件,而Nagios则是一种广泛使用的系统监控工具。这篇博文链接提供的资源聚焦于如何将这些技术结合使用,并进行有效的监控。 Ganglia是一个分布式监控系统,能够收集并...

    监控HBase集群

    在这里,我们将讨论如何使用Java代码来实现HBase集群的监控。 监控HBase集群的重要性: 在生产系统中,运维人员需要监控系统的状态和表现,以便快速定位问题的根源。通过监控HBase集群,可以实时了解系统的性能...

    Hadoop与HBase部署文档

    【Hadoop与HBase部署文档】 ...完成上述步骤后,你就成功地部署了Hadoop和HBase集群,可以开始进行大数据的存储和处理任务。然而,部署只是第一步,后期的运维和优化同样重要,包括性能监控、故障排查和系统升级等。

    Hadoop2.7.1+Hbase1.2.1集群环境搭建(7)hbase 性能优化

    4. **监控与调优**:使用HBase自带的监控工具或第三方工具(如Ganglia、Prometheus)监控系统性能,根据监控结果调整参数。 5. **数据压缩**:启用数据压缩可以减少存储空间,同时降低网络传输量,提高性能。HBase...

    Hadoop HBase 配置 安装 Snappy 终极教程

    最后,我们可以通过监控工具(如Ambari或Ganglia)观察Hadoop和HBase的运行状态,以及Snappy压缩效果,以便进一步优化性能。同时,持续关注Hadoop和HBase的新版本发布,适时进行升级以获取最新的功能和性能改进。 ...

    ganglia集群监控(包+部署说明)

    1. **Gmond (Ganglia Monitoring Daemon)**:这是Ganglia的节点代理程序,它运行在每一个被监控的主机上,收集诸如CPU使用率、内存使用、磁盘I/O、网络流量等系统指标,并将这些数据发送到Ganglia集群中的其他节点或...

    hadoop、zookeeper、hbase、spark集群配置文件

    配置HBase集群需要修改`hbase-site.xml`,其中包含HMaster、HRegionServer的地址,Zookeeper连接字符串,以及数据块大小等设置。 **Spark** 是一个快速、通用的大数据处理引擎,支持批处理、交互式查询(Spark SQL...

    基于HadoopHBase的一淘搜索离线系统PPT课件.pptx

    - **HBase集群概述**:该集群采用0.94.x版本,并进行了扩展优化,拥有超过300台服务器,存储容量超过300TB,每天的数据更新量占总量的10%。监控系统采用Ganglia和JMX,确保集群的稳定运行和性能监控。 - **HBase...

    藏经阁-HBase 在中国电信的实战.pdf

    中国电信使用 Ganglia 和 Zabbix 等工具来监控 HBase 集群的性能和状态,并使用这些工具来优化 HBase 的性能和稳定性。 HBase 在中国电信的应用 HBase 在中国电信的应用包括数据存储、数据处理、实时计算和分析等...

    Hadoop集群搭建总结

    - **监控与日志管理**:使用工具如Ganglia、Nagios监控集群健康状况,定期检查日志文件以预防潜在问题。 - **数据备份与恢复**:制定合理的数据备份策略,以便在出现故障时能够快速恢复服务。 #### 五、结论 ...

    HBase视频教程下载|基于微博数据应用的HBase实战开发

    课时6:使用Ganglia监控HBase 课时7:过滤器实战之比较过滤器 课时8:过滤器实战之专用过滤器与FilterList 课时9:过滤器实战之自定义过滤器 课时10:Observer协处理器实战之Master级别原理剖析 课时11:Observer协...

    hadoop安装部署 完全分布式

    - 安装和配置监控工具,如Ganglia或Ambari,以便监控集群的性能和健康状况。 通过以上步骤,一个基本的Hadoop完全分布式集群便得以建立。注意,实际部署可能还需要根据网络环境、硬件资源和安全策略进行相应调整。...

    hbase使用所需资源

    - 启动HBase集群,包括Master、RegionServer和Zookeeper服务。 - 创建HBase表并分配Region。 6. **SpringBoot配置**: 在SpringBoot的配置文件`application.properties`或`application.yml`中,配置HBase连接...

    hadoop 2.6.0 安装包

    - **Ganglia**或**Nagios**:监控系统,监控集群的CPU、内存、磁盘和网络等资源使用情况。 7. **安全性与认证** - **Kerberos**:实现身份验证的安全协议,用于Hadoop集群的身份验证。 - **SSL加密**:保护数据...

    HBase 编程指南

    在集群监控部分,介绍了HBase如何利用Ganglia、JMX、Nagios等工具进行性能监控和故障检测。同时,提供了运维人员日常管理所需的一系列任务列表,包括数据导入导出、日志级别调整、问题排查等,以确保HBase集群的稳定...

    完整版大数据云计算课程 Hadoop数据分析平台系列课程 Hadoop 02 实施Hadoop集群 共41页.rar

    3. Ambari:图形化管理工具,简化Hadoop集群的安装、配置、监控和管理。 通过这个41页的课程,你将全面了解Hadoop集群的搭建、运维以及在大数据分析中的应用。无论是初学者还是有经验的开发者,都能从中受益,提升...

    hadoop培训资料

    这部分可能涉及Ambari、Ganglia等监控工具的使用。 通过这些PPT的学习,你可以系统性地掌握Hadoop及其生态系统,不仅理解其基本原理,还能具备实际操作和项目实施能力。这对于在大数据领域工作或进一步学习深造都...

    HBase企业应用开发实战

    此外,监控和故障排查也是企业级应用中不可忽视的部分,学习如何使用Ambari、Ganglia等工具对HBase集群进行性能监控和问题诊断,是提升系统稳定性的关键。 最后,本书可能还会讨论HBase的最新发展和未来趋势,比如...

Global site tag (gtag.js) - Google Analytics