首页 > 其他分享 >使用ganglia监控hadoop及hbase集群

使用ganglia监控hadoop及hbase集群

时间:2023-06-11 18:02:34浏览次数:39  
标签:Ganglia hadoop metrics sink org hbase ganglia


一、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。

使用ganglia监控hadoop及hbase集群_apache

 

图1 ganglia工作流

Ganglia工作流如图1所示:

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

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

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

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

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

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

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

 

二、安装ganglia

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


 

    
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


 

    
1. yum install ganglia-web.x86_64  
2. yum install ganglia-gmetad.x86_64


3、在三台机上都安抚gmond


 

 

1. yum install ganglia-gmond.x86_64


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


 

    
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,改成:


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,改成:

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、启动


 

 
1. service gmetad start  
2. service gmond start  
3. /usr/sbin/apachectl start


9、从页面上访问
http://ip/ganglia
一些注意问题:
1、gmetad收集到的信息被放到/var/lib/ganglia/rrds/

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

1. tcpdump port 8649



三、配置hadoop与hbase

1、配置hadoop

hadoop-metrics2.properties

 


 

     
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

 

 

     
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


 

 

标签:Ganglia,hadoop,metrics,sink,org,hbase,ganglia
From: https://blog.51cto.com/u_6186189/6458425

相关文章

  • 数据库:Hadoop实验
    Hadoop实验先单机下载、安装hadoop,启动:bin/hdfsnamenode-formatsbin/start-all.sh腾讯云新建三个机器,分别在两地(香港二区、香港三区),分别命名为master、slave1、slave2。修改四个配置文件运行hadoop:分别查看三台机器运行状态:查看HDFS运行状态:通过hdfs......
  • 大数据学习笔记hadoop、hive、java
    HDFS伪分布式集群搭建tar-zxvfhadoop-2.7.7.tar.gzecho$JAVA_HOME/root/software/jdk1.8.0_221​#查看loaclhostvim/root/software/hadoop-2.7.7/etc/hadoop/hadoop-env.sh​​vim/root/software/hadoop-2.7.7/etc/hadoop/core-site.xml​​<property><name>fs.defaultFS&......
  • Memcache升级版:CouchBase的安装配置与使用说明
    Memcache基本上已经是开发的标配了,但是对于Memcache集群,很多线上部署仍然是很单薄的。几个存在的问题:不健壮、数据不安全、配置变更可能导致存取异常、后备数据的一致性鉴于存在以上问题,Memcache的开发团队开发了Membase,支持多台服务器集群,数据的切片和复制,有效的提高了服务稳定性......
  • docker搭建hadoop和hive集群
    一、安装docker并生成相关的镜像(1)安装docker安装docker教程https://www.runoob.com/docker/centos-docker-install.html只要在终端输入:sudodockerrunhello-world后出现如下图的内容就证明安装docker成功了(2)拉取CentOS镜像(Ubuntu镜像也行)在终端输入:sudodockerpullcent......
  • Hadoop的完全分布式搭建
    Hadoop分布式安装集群规划主机名Hadoop10Hadoop11Hadoop12网络192.168.10.10192.168.10.11192.168.10.12用户hadooproothadooproothadooprootHDFSNameNodeDateNodeDateNodeSecondaryNameNodeDataNodeYARNNodeManagerNodeManagerResourceManager......
  • hbase创建表提示已经存在,实际是不存在
    原因是以前创建过这个表,但是hbase暴力删除了这个表后,zookeeper还保留了这个表的信息。在linux下用hbasezkcli命令进入ls/hbase/table可以查看存在的表信息然后用命令rmr/hbase/table/表名 进入hbaseshell后就可以创建刚刚删除的表了。 ......
  • CentOS配置Hbase成系统应用,并随系统自启动
    1、在/etc/init.d/目录创建hbase文件#!/bin/bash#chkconfig:3456337#exportJAVA_HOME=/usr/local/jdk1.8.0_191HBASE_HOME=/usr/local/hbase-1.2.12case"$1"instart)$HBASE_HOME/bin/start-hbase.sh;;stop)$HBASE_HOME......
  • RDS 、HDFS、 mapreduce 、spark 、hive、 hbase 、zookeeper 、kafka 、flume、mysql
    这些技术是大数据领域的常用组件,它们之间的配置文件依赖关系如下:RDS是一种关系型数据库,可以独立安装和使用,不需要依赖其他组件。HDFS是Hadoop分布式文件系统,通常与MapReduce一起使用。在Hadoop集群中,HDFS需要配置core-site.xml和hdfs-site.xml两个文件,其中core-site......
  • Hbase shell 常用命令
    下面我们看看HBaseShell的一些基本操作命令,我列出了几个常用的HBaseShell命令,如下:名称命令表达式创建表create'表名称','列名称1','列名称2','列名称N'添加记录     put'表名称','行名称','列名称:','值'查看记录get'表名称','行名称�......
  • 关联规则二项集hadoop实现
    近期看mahout的关联规则源码,颇为头痛,本来打算写一个系列分析关联规则的源码的,但是后面看到有点乱了,可能是稍微有点复杂吧,所以就打算先实现最简单的二项集关联规则。算法的思想还是参考上次的图片:这里实现分为五个步骤:针对原始输入计算每个项目出现的次数;按出现次数从大到小(排除出现......