使用Ganglia监控Hadoop集群

2019-03-28 13:43|来源: 网络

  • 0 环境
  • 1 安装Ganglia
    • 1.1 添加EPEL软件仓库
    • 1.2 Ganglia服务器端安装
    • 1.3 Ganglia客户端安装
  • 2 配置Ganglia
    • 2.1 监控端配置
    • 2.2 服务器端
    • 2.3服务器端Apache配置
  • 3 配置Hadoop metrics

      0 环境

      操作系统:CentOS 6.2 

      hadoop版本:hadoop-1.0.1

      集群中三台机器:

      192.168.137.101        namenode

      192.168.137.103        datanode1

      192.168.137.104        datanode2 

      1 安装Ganglia

      1.1 添加EPEL软件仓库

      CentOS官方软件仓库中没有Ganglia,而Ganglia依赖又太多,本人花了一天时间才把它的一个依赖项rrdtool安装好。后来放弃源码安装,改用yum。添加仓库的方法参考:http://www.linuxidc.com/Linux/2012-05/61350.htm 。需要注意的是,EPEL安装包的地址已经发生了变化,链接中的下载地址已经不适用,可以google一下最新的地址。还要注意匹配操作系统的版本。

      1.2 Ganglia服务器端安装

      Ganglia服务器端收集监控端信息,并提供访问接口,使用以下命令安装:

      yum install ganglia ganglia-devel ganglia-gmetad ganglia-gmond ganglia-web ganglia-gmond-python

      1.3 Ganglia客户端安装

      $ yum install ganglia ganglia-gmond

      2 配置Ganglia

      2.1 监控端配置

      $ vim /etc/ganglia/gmond.conf

      将cluster选项中 name设置为gmetad中data_source指定的名称即可。

      $ service gmond start

      2.2 服务器端

      $ sudo vim /etc/ganglia/gmetad.conf

      data_source "hdfs" datanode1 datanode2

      只需要更改 data_source一行,"hdfs"代表集群的名字,datanode1,datanode2,就是要监控的机器列表。默认端口8649。

      启动服务

      service gmetad start
      chkconfig gmetad on

      2.3服务器端Apache配置

      vim /etc/httpd/conf.d/ganglia.conf

      Alias /ganglia /usr/share/ganglia

      <Location /ganglia>
      Order deny,allow
      # Deny from all
      # Allow from 127.0.0.1
      # Allow from ::1
      Allow from all
      # Allow from .example.com
      </Location>

      测试用的话可以做如上配置。
      打开浏览器: http://serverip/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设置,还是要使用第一种方法。

      3 配置Hadoop metrics

      hadoop-1.0.1的配置文件为: hadoop-1.0.1/conf/hadoop-metrics2.properties。我安装的Ganglia为版本为3.1,找到配置文件中for Ganglia 3.1 support。将需要监控的项目前面注释去掉,*.servers的配置为 239.2.11.71:8649,这个地址是Ganglia的广播地址,是固定的。

      # for Ganglia 3.1 support
      *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

      *.sink.ganglia.period=10

      # default for supportsparse is false
      *.sink.ganglia.supportsparse=true

      *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
      *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40

      namenode.sink.ganglia.servers=239.2.11.71:8649

      datanode.sink.ganglia.servers=239.2.11.71:8649

      jobtracker.sink.ganglia.servers=239.2.11.71:8649

      tasktracker.sink.ganglia.servers=239.2.11.71:8649

      maptask.sink.ganglia.servers=239.2.11.71:8649

      reducetask.sink.ganglia.servers=239.2.11.71:8649

      重启集群即可。 

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

    • 相关问答

      更多
      • 必须在hadoop集群上,它的数据来源是HDFS,本质上是yarn上的一个计算框架,像MR一样。
      • 你需要一台服务器,然后装一个虚拟化OS,有了这个平台,就可以虚拟化出若干个虚拟机。当然,现在选择云商也可以,就是得花点钱。
      • 使用脚本提交 1.使用spark脚本提交到yarn,首先需要将spark所在的主机和hadoop集群之间hosts相互配置(也就是把spark主机的ip和主机名配置到hadoop所有节点的/etc/hosts里面,再把集群所有节点的ip和主机名配置到spark所在主机的/etc/hosts里面)。 2.然后需要把hadoop目录etc/hadoop下面的*-sit.xml复制到${SPARK_HOME}的conf下面. 3.确保hadoop集群配置了 HADOOP_CONF_DIR or YARN_CONF ...
      • 瑭锦-tanjurd说到对Hadoop和HBase的集群监控,大家知道的和用的最多的还是第三方的监控工具,cacti,ganglia,zabbix之类的。玩的深一些的,会用zenoss之类的。这些工具很不错,也能发挥很大的作用。
      • 你应该试着看看O'Reilly关于Ganglia 的书 。 那边有一个很好的主题。 You should try take a look at O'Reilly's book about Ganglia. There's a good topic about that over there.
      • 错误在于gmond.conf文件。 当我评论以下值时,我在Ganglia中获得了HBase指标。 mcast_join = 239.2.11.71 bind = 239.2.11.71 The mistake was with the gmond.conf file. When I commented the following values, I got the HBase metrics in Ganglia. mcast_join = 239.2.11.71 bind = 239.2.11.71
      • 我和Ganglia一起工作Hadoop,是的,我在Ganglia上看到了很多Hadoop指标(容器,地图任务,vmem)。 事实上,Hadoop向Ganglio提交的具体报告更多的是百项指标。 hokamblogs Post就足够了。 我在主节点上编辑hadoop-metrics2.properties,内容是: namenode.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 namenode.sink.ga ...
      • 您是否看过以下链接link1和link2 。 他们清楚地提到了我们可以转储哪些指标,以及如何使用接收器来存储它们 Have you seen the following links link1 and link2. They clearly mentioned which metrics we can dump, and how to use sinks to store them
      • 在我努力解决问题之后,我发现如果我们在hadoop-metrics2.properties中设置了度量的dmax,那么当hadoop崩溃时,神经节不会收到任何数据,并返回UNKNOW。 神经节网站中的图形将消失。 当ganglia + nagios时,nagios也会返回UNKNOW状态。 这足以判断hadoop是上升还是下降。 dmax意味着在dmax时间之后,hadoop会破坏度量。 After my struggle to solve the problem, I found that if we s ...
      • 解决了这个问题,我做了以下事情: 将默认rrd规则更改为: RRA“RRA:AVERAGE:0.5:1:256”“RRA:AVERAGE:0.5:24:512”“RRA:平均:0.5:168:512”“RRA:平均:0.5:672:512”“RRA:平均: 0.5:5760:1024" 关闭hadoop metric2的datanode.sink和nodemanager.sink; 参考: http : //www.perzl.org/ganglia/bestpractices.html##Best_Pra ...