centos下安装ganglia监控hadoop集群

来源:互联网 发布:中国全文期刊数据库 编辑:程序博客网 时间:2024/04/29 01:58
  • 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.4

      hadoop版本:hadoop-1.2.1

      集群中三台机器:

      192.168.137.101        namenode

      192.168.137.103        datanode1

      192.168.137.104        datanode2 

      1 安装Ganglia

      1.1 添加EPEL软件仓库

      CentOS官方软件仓库中没有Ganglia,而Ganglia依赖又太多,所以添加epel仓库。

      rpm -q epel-release查看是否安装epel软件仓库。

      若没有,执行:rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

      确认你的centos系统版本、位数。


      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指定的名称(hadoop)即可。

      将globals模块下的setuid=yes修改为setuid=no

      $ service gmond start

      2.2 服务器端

      $ sudo vim /etc/ganglia/gmetad.conf

      data_source "hadoop" datanode1 datanode2

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

      启动服务

      service gmetad start
      chkconfig gmetad on

      2.3服务器端Apache配置

      mkdir /var/www/html/ganglia

      cp /etc/ganglia/conf.php /var/www/html/ganglia/


      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>


      vi /etc/httpd/conf/httpd.conf这个文件,找到DocumentRoot "/var/www/html"修改成默认DocumentRoot "/var/www/html/ganglia呗。
      然后在/etc/httpd/conf/httpd.conf里最后添加
      <Directory /var/www/html/B>
      Options All
      AllowOverride None
      Order allow,deny
      Allow from all
      </Directory>


      service httpd restart
      测试用的话可以做如上配置。
      打开浏览器: 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

      重启集群即可。