zoukankan      html  css  js  c++  java
  • Ganglia监控Hadoop集群的安装部署[转]

    Ganglia监控Hadoop集群的安装部署

    一、 安装环境 

    • Ubuntu server 12.04
    • 安装gmetad的机器:192.168.52.105
    • 安装gmond的机 器:192.168.52.31,192.168.52.32,192.168.52.33,192.168.52.34,192.168.52.35,192.168.52.36,192.168.52.37,192.168.52.38,192.168.52.105
    • 浏览监控web页面的机器:192.168.52.105 

    二、 介绍 

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

    三、 安装 

    1.apt-get方式安装

    首先找一个结点当作web显示的结点,使用以下命令一键安装:
    apt-get -y install ganglia-monitor ganglia-webfrontend 
    安装了ganglia-webfrontend就相当于同时安装了gmetad、ganglia-web和rrdtool等。
    以 上安装的版本都是3.1.7,因为ubuntu官方源里面只支持到ganglia-webfrontend-3.1.7,起中使用的Ganglia Web Frontend版本也是3.1.7,版本太低,显示的界面很不友好,因此后面的文章我会介绍如何手动安装Ganglia Web Frontend version 3.5.7(目前最高版本已经到3.6)。如果为了方便,对于监控的界面要求不高的话,又图省事,可以用上述命令一键安装。
    除了安装ganglia-webfrontend的主机,其他主机只需要安装ganglia-monitor即可。

    2.链接到web服务器

    安装ganglia-webfrontend的时候就已经安装了Apache Web Server,Ganglia-webfrontend默认安装的位置是/usr/share/ganglia-webfront,现在还不能通过浏览器 访问Ganglia监控界面,需要执行以下命令将将ganglia的文件链接到apache的默认目录下。
    ln -s /usr/share/ganglia-webfront /var/www/ganglia

    四、 配置 

    1.单播与组播

     
    在进行Ganglia集群配置之前,首先要搞清楚单播和组播。
    • 单播:可以跨网段传播,只将信息发送给指定的机器。要配置成为单播你应该指定一个(或者多个)接受的主机。
    • 组播:在机器所处的网段中发送广播,发送给位于同一网段的所有机器。如果你正在使用组播传输,那么你没必要改变任何东西,因为这是Ganglia 包安装默认的。唯一要做的就是把gmetad指向一个或几个运行着gmo nd的主机。没有必要列出每一个单个主机,因为gmo nd被设置为接受模式时会包含所有主机的列表以及整个集群的统计信息。
    关于单播和组播更详细的介绍和相关配置请参照:Ganglia快速开始向导(翻译自官方wiki)  http://www.linuxidc.com/Linux/2013-11/92747.htm,或者直接查看官方wiki
     

    2.集群配置

     
    我的Ganglia监控集群使用了单播模式。所有的配置都在/etc/ganglia目录下,在每个节点上都要配置/etc/ganglia/gmond.conf.
    红色字体为修改项。
     
     
    globals {
    daemonize = yes
    setuid = yes
    user = root /*运行Ganglia的用户*/
    debug_level = 0
    max_udp_msg_len = 1472
    mute = no
    deaf = no
    host_dmax = 120 /*secs */
    cleanup_threshold = 300 /*secs */
    gexec = no
    send_metadata_interval = 15 /*发送数据的时间间隔*/
    }


    cluster {
    name = "hadoop_hf" /*集群名称*/
    owner = "root" /*运行Ganglia的用户*/
    latlong = "unspecified"
    url = "unspecified"
    }


    udp_send_channel {
    # mcast_join = 192.168.52.105 /*注释掉组播*/
    host = 192.168.52.105 /*发送给安装gmetad的机器*/
    port = 8649
    ttl = 1
    }

    五、 启动Ganglia

     
     
    使用apt-get方式安装的Ganglia,可以直接用service方式启动。
    • service ganglia-monitor start (每台机器都需要启动)
    • service gmetad start (在安装了ganglia-webfrontend的机器上启动)
     
     

    六、 检验

     
     
    登录浏览器查看:http://192.168.52.105/ganglia,如果Hosts up为9即表示安装成功。
    若安装不成功,有几个很有用的调试命令:
    • 以调试模式启动gmetad:gmetad -d 9
    • 查看gmetad收集到的XML文件:telnet 192.168.52.105 8649
     
     

    七、 Ganglia-web的安装

     
     
    因为3.1.7版本的Ganglia-web实在太丑,因此我卸载了ganglia-webfrontend,然后单独安装了gmetad后又安装了新版的Ganglia-web-3.5.10.
    按照官方的说明,首先将tar.gz文件解压,然后进入解压后的目录,修改Makefile文件中的如下四个配置:
    # Location where gweb should be installed to (excluding conf, dwoo dirs).
    GDESTDIR = /var/www/ganglia
    
    
    # Gweb statedir (where conf dir and Dwoo templates dir are stored)
    GWEB_STATEDIR = /var/lib/ganglia
    
    
    # Gmetad rootdir (parent location of rrd folder)
    GMETAD_ROOTDIR = /var/lib/ganglia
    
    
    APACHE_USER = root(切忌后面不要有空格)
     
    重新启动gmetad。登录http://192.168.52.105/ganglia后如果配置有问题可以根据网页中的报错修改。一般会出现文件读写权限错误,没有rrd目录就需要自己创建,conf和cache目录的权限需要修改为777。
     
    监控界面截图:

    八、 监控Hadoop集群

    修改Hadoop的配置文件/etc/hadoop/hadoop-metrics.properties,根据文件中的说明,修改三处:
    dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
    dfs.period=30
    dfs.servers=192.168.52.105:8649
     
    mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
    mapred.period=30
    mapred.servers=192.168.52.105:8649
     
    jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
    jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
    jvm.period=30
    jvm.servers=192.168.52.105:8649
     
    所有的servers都修改为安装为gmetad的机器IP。
    重启Hadoop datanode:service hadoop-datanode restart
    重启gmond:/usr/sbin/gmond restart
  • 相关阅读:
    0094-leetcode算法实现之二叉树中序遍历-binary-tree-inorder-traversal-python&golang实现
    0144-leetcode算法实现之二叉树的前序遍历-binary-tree-preorder-traversal-python&golang实现
    0347-leetcode算法实现之前K个高频元素-top-k-frequent-elements-python&golang实现
    0239-leetcode算法实现之滑动窗口最大值-sliding-window-maximum-python&golang实现
    0150-leetcode算法实现之逆波兰表达式-evaluate-reverse-polish-notation-python&golang实现
    1047-leetcode算法实现之删除字符串的所有相邻的重复字符-remove-all-adjacent-duplicates-in-string-python&golang实现
    pstack 追踪进程-转
    0225-leetcode算法实现之用队列实现栈-implement-stack-using-queues-python&golang实现
    0020-leetcode算法实现之有效括号-valid-parentheses-python&golang实现
    0232-leetcode算法实现-用栈实现队列-implement-queue-using-stacks-python&golang实现
  • 原文地址:https://www.cnblogs.com/whtydn/p/4271671.html
Copyright © 2011-2022 走看看