阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS集群上安装Ganglia-3.6.0监控Hadoop-2.2.0和HBase-0.96.0

139次阅读
没有评论

共计 21308 个字符,预计需要花费 54 分钟才能阅读完成。

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

一、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 工作流如图所示:

CentOS 集群上安装 Ganglia-3.6.0 监控 Hadoop-2.2.0 和 HBase-0.96.0

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

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

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

相关阅读

使用 Ganglia 监控 Hadoop 集群 http://www.linuxidc.com/Linux/2012-05/61349.htm

在 VMware Workstation 的 Ubuntu 下安装和配置 Hadoop 与 Ganglia http://www.linuxidc.com/Linux/2013-06/85856.htm

Ganglia 安装部署之一建立 Grid http://www.linuxidc.com/Linux/2013-05/83673.htm

Ganglia 极其简单安装教程 yum 版 http://www.linuxidc.com/Linux/2012-12/76536.htm

Ganglia 快速开始向导(翻译自官方 wiki)http://www.linuxidc.com/Linux/2013-11/92747.htm

二、安装依赖

注:建议使用超级用户安装

  1. #yum install –y gcc gcc-c++ libpng freetype zlib libdbi apr* libxml2-devel pkg-config glib pixman \
  2. pango pango-devel freetye-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel pcre* rrdtool*

三、安装 expat 依赖

  1. #cd /home/aaron
  2. #wget http://jaist.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
  3. #tar -xf expat-2.1.0.tar.gz
  4. #cd expat-2.1.0
  5. #./configure –prefix=/usr/local/expat
  6. #make
  7. #make install

对于 64 位操作系统,需要手动的拷贝下动态链接库到 lib64 下

  1. #mkdir /usr/local/expat/lib64
  2. #cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/

 

四、安装 confuse

  1. #cd /home/aaron
  2. #wget http://ftp.twaren.net/Unix/NonGNU//confuse/confuse-2.7.tar.gz
  3. #tar -xf confuse-2.7.tar.gz
  4. #cd confuse-2.7
  5. #./configure CFLAGS=-fPIC –disable-nls –prefix=/usr/local/confuse
  6. #make
  7. #make install

64bit 机器需要拷贝动态链接库:

  1. #mkdir -p /usr/local/confuse/lib64
  2. #cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/

五、安装 ganglia

  1. #cd /home/aaron
  2. #wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.6.0/ganglia-3.6.0.tar.gz
  3. #tar -xf ganglia-3.6.0.tar.gz
  4. #cd ganglia-3.6.0
  5. #./configure –with-gmetad –enable-gexec –with-libconfuse=/usr/local/confuse –with-libexpat=/usr/local/expat –prefix=/usr/local/ganglia –sysconfdir=/etc/ganglia
  6. #make
  7. #make install

六、服务端配置
创建 rrdtool 数据目录,看 $ganglia-3.2.0/web/conf.php 里面的 gmetad_root 变量,并根据 apache 的运行用户创建权限,例如 apache 运行于 apache 用户上。

  1. #mkdir -p /var/lib/ganglia/rrds
  2. #mkdir -p /var/lib/ganglia/dwoo
  3. #chown -R root:root /var/lib/ganglia

配置一个数据源,修改 /etc/ganglia/gmetad.conf 文件,同时将运行用户设置为 rrdtool 的目录权限用户,例如 apache 用户

  1. data_source “Hadoop” 192.168.1.108:8649
  2. setuid_username “root”

说明:这里的 ” hadoop ” 表示的是集群的名称,后面的内容是这个集群中所包含的主机信息,也就是要监控的主机 ip。
添加自启动脚本

  1. #cp -f gmetad/gmetad.init /etc/init.d/gmetad
  2. #cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad
  3. #chkconfig –add gmetad

启动 gmetad 服务

  1. #service gmetad start

看见 Starting GANGLIA gmetad: [OK]就代表运行正常了。通过 telnet localhost 8651 验证 gmetad 是否正常
七、客户端配置(gmond 节点)
本机安装如下:

  1. #cp -f gmond/gmond.init /etc/init.d/gmond
  2. #cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
  3. #chkconfig –add gmond
  4. #gmond –default_config > /etc/ganglia/gmond.conf

对于生成的默认配置文件需要做适当的修改

  1. globals {
  2. daemonize = yes
  3. setuid = yes
  4. user = root /* 运行 Ganglia 的用户 */
  5. debug_level = 0
  6. max_udp_msg_len = 1472
  7. mute = no
  8. deaf = no
  9. host_dmax = 120 /*secs */
  10. cleanup_threshold = 300 /*secs */
  11. gexec = no
  12. send_metadata_interval = 15 /* 发送数据的时间间隔 */
  13. }
  14. cluster {
  15. name = “hadoop” /* 集群名称 */
  16. owner = “root” /* 运行 Ganglia 的用户 */
  17. latlong = “unspecified”
  18. url = “unspecified”
  19. }
  20. udp_send_channel {
  21. # mcast_join = 239.2.11.71 /* 注释掉组播 */
  22. host = 192.168.1.108/* 发送给安装 gmetad 的机器 */
  23. port = 8649
  24. ttl = 1
  25. }
  26. udp_recv_channel {#接受 UDP 包配置
  27. # mcast_join = 239.2.11.71
  28. port = 8649
  29. # bind = 239.2.11.71
  30. }

其中 name 是将要在服务端进行的分组,是服务端的数据源。接下来开启服务

  1. #service gmond start

看见 Starting GANGLIA gmetad: [OK]代表启动成功。如果有失败,可以讲 gmond.conf 中的 debug 从 0 改为 100,看更多的日志,然后进行排查。

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

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

一、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 工作流如图所示:

CentOS 集群上安装 Ganglia-3.6.0 监控 Hadoop-2.2.0 和 HBase-0.96.0

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

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

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

相关阅读

使用 Ganglia 监控 Hadoop 集群 http://www.linuxidc.com/Linux/2012-05/61349.htm

在 VMware Workstation 的 Ubuntu 下安装和配置 Hadoop 与 Ganglia http://www.linuxidc.com/Linux/2013-06/85856.htm

Ganglia 安装部署之一建立 Grid http://www.linuxidc.com/Linux/2013-05/83673.htm

Ganglia 极其简单安装教程 yum 版 http://www.linuxidc.com/Linux/2012-12/76536.htm

Ganglia 快速开始向导(翻译自官方 wiki)http://www.linuxidc.com/Linux/2013-11/92747.htm

八、服务端的 WEB 配置
PHP 程序需要依赖 Apache 来运行,因此需要安装如下依赖

  1. # yum -y install php httpd
  2. # service httpd start // 启动 httpd 服务

 

 

九、测试安装是否成功

  1. # vi /var/www/html/index.php

输入:

  1. <?php
  2. phpinfo();
  3. ?>

保存,然后浏览器 master/index.php
正常是看到 php 的信息。

  1. #cd /home/ruifeng.shan
  2. #wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia-web/3.5.10/ganglia-web-3.5.10.tar.gz
  3. #tar -xf ganglia-web-3.5.10.tar.gz
  4. #cd ganglia-web-3.5.10
  5. #make install

这样 在 /var/www/html/ 下 生成了 ganglia 目录
注:
Ganglia 访问失败:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied
解决:
需要关闭 selinux:vi /etc/selinux/config,把 SELINUX=enforcing 改成 SELINUX=disable;需要重启机器。
可以使用命令 setenforce 0 来关闭 selinux 而不需要重启,刷新页面,即可访问。但此方法只是一权宜之计。要想永久修改 selinux 设置,还是要使用第一种方法。
重启 httpd 服务器即可看到效果

  1. #service httpd restart

使用 http://master/ganglia 查看对应的 ganglia 信息。(注:master 为运行 gmetad 的主机的 hostname)

Hadoop 和 HBase 社区一直使用它作为监控集群的业界标准方案。在 maste 上安装 gmetad,在 master、node、slave 上安装 gmond。为了监控 Hadoop 和 HBase,需要对它们做一些配置。这里 Hadoop 使用的是 2.2.0 版本,HBase 使用的是 0.96.0 这个版本。这里监控的分布式集群也是文章《Ubuntu 和 CentOS 中分布式配置 Hadoop-2.2.0》http://www.linuxidc.com/Linux/2014-01/95799.htm 和《CentOS 分布式环境安装 HBase-0.96.0》http://www.linuxidc.com/Linux/2014-01/95801.htm 中布置的 hadoop 和 hbase。

为了能让 ganglia 监控 hadoop,Hadoop2.2.0 需要配置 hadoop-2.2.0/etc/hadoop/ 目录下的 hadoop-metrics.properties 和 hadoop-metrics2.properties 文件。其中,hadoop-metrics.properties 配置如下:

  1. # Configuration of the “dfs” context for null
  2. dfs.class=org.apache.hadoop.metrics.spi.NullContext
  3. # Configuration of the “dfs” context for file
  4. #dfs.class=org.apache.hadoop.metrics.file.FileContext
  5. #dfs.period=10
  6. #dfs.fileName=/tmp/dfsmetrics.log
  7. # Configuration of the “dfs” context for ganglia
  8. # Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
  9. # dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext
  10. # dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
  11. # dfs.period=10
  12. # dfs.servers=localhost:8649
  13. # Configuration of the “mapred” context for null
  14. mapred.class=org.apache.hadoop.metrics.spi.NullContext
  15. # Configuration of the “mapred” context for file
  16. #mapred.class=org.apache.hadoop.metrics.file.FileContext
  17. #mapred.period=10
  18. #mapred.fileName=/tmp/mrmetrics.log
  19. # Configuration of the “mapred” context for ganglia
  20. # Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
  21. # mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext
  22. # mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
  23. # mapred.period=10
  24. # mapred.servers=localhost:8649
  25. # Configuration of the “jvm” context for null
  26. #jvm.class=org.apache.hadoop.metrics.spi.NullContext
  27. # Configuration of the “jvm” context for file
  28. #jvm.class=org.apache.hadoop.metrics.file.FileContext
  29. #jvm.period=10
  30. #jvm.fileName=/tmp/jvmmetrics.log
  31. # Configuration of the “jvm” context for ganglia
  32. # jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
  33. # jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
  34. # jvm.period=10
  35. # jvm.servers=localhost:8649
  36. # Configuration of the “rpc” context for null
  37. rpc.class=org.apache.hadoop.metrics.spi.NullContext
  38. # Configuration of the “rpc” context for file
  39. #rpc.class=org.apache.hadoop.metrics.file.FileContext
  40. #rpc.period=10
  41. #rpc.fileName=/tmp/rpcmetrics.log
  42. # Configuration of the “rpc” context for ganglia
  43. # rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext
  44. # rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
  45. # rpc.period=10
  46. # rpc.servers=localhost:8649
  47. # Configuration of the “ugi” context for null
  48. ugi.class=org.apache.hadoop.metrics.spi.NullContext
  49. # Configuration of the “ugi” context for file
  50. #ugi.class=org.apache.hadoop.metrics.file.FileContext
  51. #ugi.period=10
  52. #ugi.fileName=/tmp/ugimetrics.log
  53. # Configuration of the “ugi” context for ganglia
  54. # ugi.class=org.apache.hadoop.metrics.ganglia.GangliaContext
  55. # ugi.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
  56. # ugi.period=10
  57. # ugi.servers=localhost:8649

hadoop-metrics2.properties 文件配置如下:

  1. #
  2. # Licensed to the Apache Software Foundation (ASF) under one or more
  3. # contributor license agreements. See the NOTICE file distributed with
  4. # this work for additional information regarding copyright ownership.
  5. # The ASF licenses this file to You under the Apache License, Version 2.0
  6. # (the “License”); you may not use this file except in compliance with
  7. # the License. You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an “AS IS” BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. #
  17. # syntax: [prefix].[source|sink].[instance].[options]
  18. # See javadoc of package-info.java for org.apache.hadoop.metrics2 for details
  19. ############## 一定要注释掉原来的这块,否则会监控不到 #########
  20. #*.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink
  21. # default sampling period, in seconds
  22. #*.period=10
  23. #############################################################
  24. # The namenode-metrics.out will contain metrics from all context
  25. #namenode.sink.file.filename=namenode-metrics.out
  26. # Specifying a special sampling period for namenode:
  27. #namenode.sink.*.period=8
  28. #datanode.sink.file.filename=datanode-metrics.out
  29. # the following example split metrics of different
  30. # context to different sinks (in this case files)
  31. #jobtracker.sink.file_jvm.context=jvm
  32. #jobtracker.sink.file_jvm.filename=jobtracker-jvm-metrics.out
  33. #jobtracker.sink.file_mapred.context=mapred
  34. #jobtracker.sink.file_mapred.filename=jobtracker-mapred-metrics.out
  35. #tasktracker.sink.file.filename=tasktracker-metrics.out
  36. #maptask.sink.file.filename=maptask-metrics.out
  37. #reducetask.sink.file.filename=reducetask-metrics.out
  38. *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
  39. *.sink.ganglia.period=10
  40. *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
  41. *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
  42. namenode.sink.ganglia.servers=master:8649
  43. resourcemanager.sink.ganglia.servers=master:8649
  44. datanode.sink.ganglia.servers=master:8649
  45. nodemanager.sink.ganglia.servers=master:8649
  46. maptask.sink.ganglia.servers=master:8649
  47. reducetask.sink.ganglia.servers=master:8649

为了让 ganglia 监控 hbase,需要配置 hbase-0.96.0 目录下的 conf 目录中的 hadoop-metrics2-hbase.properties 文件。内容如下:

  1. # syntax: [prefix].[source|sink].[instance].[options]
  2. # See javadoc of package-info.java for org.apache.hadoop.metrics2 for details
  3. ############## 一定要注释掉原来的这块,否则会监控不到 #########
  4. #*.sink.file*.class=org.apache.hadoop.metrics2.sink.FileSink
  5. # default sampling period
  6. #*.period=10
  7. #############################################################
  8. # Below are some examples of sinks that could be used
  9. # to monitor different hbase daemons.
  10. # hbase.sink.file-all.class=org.apache.hadoop.metrics2.sink.FileSink
  11. # hbase.sink.file-all.filename=all.metrics
  12. # hbase.sink.file0.class=org.apache.hadoop.metrics2.sink.FileSink
  13. # hbase.sink.file0.context=hmaster
  14. # hbase.sink.file0.filename=master.metrics
  15. # hbase.sink.file1.class=org.apache.hadoop.metrics2.sink.FileSink
  16. # hbase.sink.file1.context=thrift-one
  17. # hbase.sink.file1.filename=thrift-one.metrics
  18. # hbase.sink.file2.class=org.apache.hadoop.metrics2.sink.FileSink
  19. # hbase.sink.file2.context=thrift-two
  20. # hbase.sink.file2.filename=thrift-one.metrics
  21. # hbase.sink.file3.class=org.apache.hadoop.metrics2.sink.FileSink
  22. # hbase.sink.file3.context=rest
  23. # hbase.sink.file3.filename=rest.metrics
  24. *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
  25. *.sink.ganglia.period=10
  26. hbase.sink.ganglia.period=10
  27. hbase.sink.ganglia.servers=master:8649

HBase 的详细介绍:请点这里
HBase 的下载地址:请点这里

相关阅读

Hadoop+HBase 搭建云存储总结 PDF http://www.linuxidc.com/Linux/2013-05/83844.htm

HBase 结点之间时间不一致造成 regionserver 启动失败 http://www.linuxidc.com/Linux/2013-06/86655.htm

Hadoop+ZooKeeper+HBase 集群配置 http://www.linuxidc.com/Linux/2013-06/86347.htm

Hadoop 集群安装 &HBase 实验环境搭建 http://www.linuxidc.com/Linux/2013-04/83560.htm

基于 Hadoop 集群的 HBase 集群的配置 http://www.linuxidc.com/Linux/2013-03/80815.htm‘

Hadoop 安装部署笔记之 -HBase 完全分布模式安装 http://www.linuxidc.com/Linux/2012-12/76947.htm

单机版搭建 HBase 环境图文教程详解 http://www.linuxidc.com/Linux/2012-10/72959.htm

更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计21308字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中