Ganglia监控Hadoop集群的安装部署

详情请参见 http://boendev.iteye.com/blog/1750615

一、 安装环境

  • CentOS6.5x86_64
  • 安装gmetad的机器:10.2.6.250 (服务端)
  • 安装gmond的机器:10.2.6.250,10.2.6.246,10.2.6.248,10.2.6.249
  • 浏览监控web页面的机器:10.2.6.250
  • Ganglia 监控套件包括三个主要部分 gmond ,gmetad,和网页接口,通常被称为ganglia-web。
    gmond 是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息。
  • gmetad 也是一个守护进程,他定期检查gmonds ,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。它可以查询多个集群并聚合指标。RRD也被用于生成用户界面的web前端。
  • ganglia-web 顾名思义,他应该安装在有gmetad运行的机器上,以便读取RRD文件。

二、 介绍

一般来说一个集群的每台机器上都需要安装gmond,只要负责展示web界面的机器安装了gmetad即可。

1.ganglia规划

 主机名        ip
              规划                        安装

hadoop1 
10.2.6.250    服务端   ganglia-gmond、ganglia-gmetad、ganglia-web

hadoop2   10.2.6.246
   客户端   
        ganglia-gmond

hadoop3   10.2.6.248
   客户端      
     ganglia-gmond

hadoop4 
 10.2.6.249    客户端     
      ganglia-gmond

安装前确保iptables关闭.

2.安装前的准备工作

2.1加载yum源,在每一台机器上面执行下面两个命令

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

yum  -y  install  httpd-devel  automake  autoconf  libtool  ncurses-devel  libxslt  groff  pcre-devel  pkgconfig

3.主节点服务安装配置

3.1主节点的服务安装(hadoop1上面的安装配置)安装ganglia-gmetad 和 ganglia-web

  1. #yum search ganglia     ------------------查看ganglia在epel的安装包,复制进行安装
  2. #yum -y install ganglia-web.x86_64 ganglia-gmond.x86_64
  3. #yum -y install ganglia-gmetad.x86_64 ----------------------(如果上一步执行了这步不用执行,web包会自动下载该依赖)
  4. #rpm -qa |grep ganglia          --------------------查看安装情况
  5. # rpm -ql ganglia-gmetad.x86_64       ------------- 复制上面命令执行结果的安装名,可查看安装路径

 

3.1.1配置gmetad

Shell代码  

  1. # vi /etc/ganglia/gmetad.conf
  2. data_source
    "my cluster" 10.2.6.250:8649  ---- Hadoop为cluster名称,后面是需要监控的主机名
3.1.2修改apache设置

Shell代码  

  1. # vi /etc/httpd/conf.d/ganglia.conf
  2. 文件内容Deny from all 为 allow from all
  3. 修改后配置如下
  4. <Location
    /ganglia>
  5. Order deny,allow
  6. Allow from all
  7. Allow from 127.0.0.1
  8. Allow from ::1
  9. # Allow from .example.com
  10. </Location>
3.1.3设置启动

Shell代码  

  1. # chkconfig --add gmetad
  2. # chkconfig --add gmond
  3. # chkconfig --add httpd
3.1.4打开端口/关闭防火墙

# /etc/init.d/iptables
stop -------------------关闭防火墙,用于测试时,线上最好用打开端口方式

3.1.5关闭SELinux

1 永久方法 – 需要重启服务器

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

2 临时方法 – 设置系统参数

使用命令setenforce 0

附:

setenforce 1 设置SELinux 成为enforcing模式

setenforce 0 设置SELinux 成为permissive模式

4.监控节点的安装(每个监控节点,hadoop2,hadoop3,

hadoop4都要安装)

4.1安装ganglia-gmond

Shell代码  

  1. #yum search ganglia
  2. #yum install ganglia-gmond.x86_64

4.2配置gmond

Shell代码  

  1. #vi /etc/ganglia/gmond.conf
  2. cluster
    {
  3. name = "my cluster" 
      ------ cluster名称,是你在gmetad.conf里配置的data_source名称
  4. owner = "root"
  5. latlong = "unspecified"
  6. url = "unspecified"
  7. }
  8. udp_send_channel
    {
  9. #
    mcast_join = 239.2.11.71  ----- 组播
  10. host=10.2.6.250    -------------- 单播 gmeta主机的ip/主机名或者主机ip地址
  11. port
    = 8649
  12. ttl =
    1
  13. }
  14. udp_recv_channel {
  15. #mcast_join = 239.2.11.71
  16. port
    = 8649
  17. bind =
    10.2.6.246
  18. }

4.3配置启动

chkconfig
 --add  gmond

chkconfig
 --list  gmond

此时,如果正确安装,会出现gmond    
      0:off   1:off   2:off   3:off   4:off
  5:off   6:off

4.4配置hosts

# vi /etc/hosts

10.2.6.250 hadoop1

10.2.6.246 hadoop2

10.2.6.248 hadoop3

10.2.6.249 hadoop4

全部安装完毕后

在主机上

# service gmetad start

# service gmond start

# service httpd start

# service gmetad status 
  -------------------验证是否启动成功

# service gmond status   -------------------验证是否启动成功

在监控节点上 

# service gmond start

# service gmond status   -------------------验证是否启动成功

访问http://10.2.6.250/ganglia

常见问题

Forbidden错误时,因为对apache有一个设置

修改 /etc/httpd/conf.d/ganglia.conf文件内容Deny from all 为 allow from all

There was an error collecting ganglia data
(127.0.0.1:8652):fsockopen error: Permission denied
解决方法

1 永久方法 – 需要重启服务器

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

2 临时方法 – 设置系统参数

使用命令setenforce 0

附:

setenforce 1 设置SELinux 成为enforcing模式

setenforce 0 设置SELinux 成为permissive模式

There was an error collecting ganglia data
(127.0.0.1:8652):fsockopen error: Connection refused
解决办法

卸载yum remove ganglia-web
ganglia-gmetad

重新安装yum install ganglia-web
   ----- ganglia-web本身有引用gmetad

重启即可

http://redhatdebian.blog.51cto.com/1197273/828992

第2节 storm路由器项目开发:8 - 9、集群监控软件ganglia的安装和使用的更多相关文章

  1. 第2节 storm路由器项目开发:1 - 7、网络路由器项目

    网安需求: 1:IFTTT:随着物联网的兴起,if this then that .如果出现这种情况,那么及时反映做出对应的操作. 判断手机号黑白名单,mac地址黑白名单.如果是碰到手机号或者mac地 ...

  2. 项目中使用Quartz集群分享--转载

    项目中使用Quartz集群分享--转载 在公司分享了Quartz,发布出来,希望大家讨论补充. CRM使用Quartz集群分享  一:CRM对定时任务的依赖与问题  二:什么是quartz,如何使用, ...

  3. 解决项目迁移至Kubernetes集群中的代理问题

    解决项目迁移至Kubernetes集群中的代理问题 随着Kubernetes技术的日益成熟,越来越多的企业选择用Kubernetes集群来管理项目.新项目还好,可以选择合适的集群规模从零开始构建项目: ...

  4. Zookeeper Monitor集群监控开发

    随着线上越来越多的系统依赖Zookeeper集群.以至于Zookeeper集群的执行状况越来越重要.可是眼下还没有什么好用的Zookeeper集群监控系统(淘宝开源了一个Zookeeper监控系统,可 ...

  5. hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置

    配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...

  6. 面试连环炮系列(二):你们的项目Redis做了集群部署吗

    你们的项目Redis做了集群部署吗? 我们有大量数据需要缓存,而单实例的容量毕竟是有限的,于是做了Redis集群部署. 采取的方案是什么,Codis还是Redis Cluster,为什么要选择这个方案 ...

  7. 开发的服务集群部署方案,以etcd为基础(java)

    当前有很多服务集群部署,但是对于我们自己开发的服务系统怎么样能够解决部署问题,对大家很麻烦和笨重. 首先,我想说对于我们国内,小公司小系统比较多.大型系统毕竟少数,向阿里云看齐的不多.其实所谓的需要集 ...

  8. 一步到位分布式开发Zookeeper实现集群管理

    说到分布式开发Zookeeper是必须了解和掌握的,分布式消息服务kafka .hbase 到hadoop等分布式大数据处理都会用到Zookeeper,所以在此将Zookeeper作为基础来讲解. Z ...

  9. 大数据入门第十六天——流式计算之storm详解(三)集群相关进阶

    一.集群提交任务流程分析 1.集群提交操作 参考:https://www.jianshu.com/p/6783f1ec2da0 2.任务分配与启动流程 参考:https://www.cnblogs.c ...

随机推荐

  1. java 协程

    协程是比线程更轻量级的程序处理单元,也可以说是运行在线程上的线程,由自己控制 1.适用于被阻塞的,且需要大量并发的场景. 2.不适用于,大量计算的多线程,遇到此种情况,更好实用线程去解决. 虽然Jav ...

  2. JDBC通过资源文件初始化

  3. pdf.js的使用 (3)真实项目分享

    需求:a.jsp页面要做一个pdf的预览功能,我采用layer.open()弹窗的形式来预览pdf 1.在a.jsp点击文件然后弹出窗口(其实是弹出b.jsp) var lay=layer.open( ...

  4. 激活win10企业版,亲测可用,(win7步骤相同,请自行测试)

    其他版本我没试过,亲们可以尝试! win7神key win7神key1:2HYJ4-V71WM-BAF6Y-G2BTH-X8QOD win7神key2:9LM54-Z3LQ1-5IRAN-T4JNI- ...

  5. LeetCode 234. Palindrome Linked List(判断是否为回文链表)

    题意:判断是否为回文链表,要求时间复杂度O(n),空间复杂度O(1). 分析: (1)利用快慢指针找到链表的中心 (2)进行步骤(1)的过程中,对前半部分链表进行反转 (3)如果链表长是偶数,首先比较 ...

  6. [02]Sort选择排序

    选择排序 算法速度:通过大O表示法表示,O(n),n是操作数,表示算法执行的次数: 数组:是有序的元素序列:若将有限个类型相同的变量的集合命名,那么这个名称为数组名: 链表:是一种物理存储单元上非连续 ...

  7. string类的具体实现

    bigThree,注意拷贝构造函数的写法. #ifndef __MYSTRING__ #define __MYSTRING__ class String { public: String(); Str ...

  8. Tensorflow机器学习入门——AttributeError: module 'scipy.misc' has no attribute 'toimage'

    这个bug的解决办法: import cv2 # scipy.misc.toimage(image_array).save('cifar10_data/raw/%d.jpg' % i) cv2.imw ...

  9. Python - 模块中的"if __name__ == '__main__':"

    1.1 如果导入的模块除了定义函数之外还中有可以执行代码,那么Python解释器在导入这个模块时就会执行这些代码. module1.py: def foo(): print('module 1') f ...

  10. Scrapy 分布式爬取

    由于受到计算机能力和网络带宽的限制,单台计算机运行的爬虫咋爬取数据量较大时,需要耗费很长时间.分布式爬取的思想是“人多力量大”,在网络中的多台计算机同时运行程序,公童完成一个大型爬取任务, Scrap ...