ITPub博客

首页 > 大数据 > Hadoop > Ganglia监控Hadoop及Hbase集群性能实践方法

Ganglia监控Hadoop及Hbase集群性能实践方法

原创 Hadoop 作者:jaymarco 时间:2020-09-23 12:45:32 0 删除 编辑

1        背景

随着移动电信网络技术的蓬勃发展,越来越多的业务和系统增多,这些业务系统给人们带来了诸多便捷。但是随着用户量的增多、数据量的增大,业务系统的压力也越来越大,其运行也需要专门的管理人员进行管理,很有必要对其运行状态进行监控。Ganglia UC Berkeley 发起的一个开源集群监视项目,广泛用于hadoop 监控,设计用于测量数以千计的节点。Ganglia 的核心包含gmond gmetad 以及一个Web 前端。主要  是用来监控系统性能,如:cpu  mem 、硬盘利用率, I/O 负载、网络流量、hadoop hbase 指标情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

 

Ganglia gmond gmetad gweb 三部分组成

gmond Ganglia Monitoring Daemon )是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond 在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/ 通告协议和集群内其他节点共享数据。使用gmond ,你可以很容易收集很多系统指标数据,如CPU 、内存、磁盘、网络和活跃进程的数据等。

gmetad Ganglia Meta Daemon )是一种从其他gmetad gmond 源收集指标数据,并将其以RRD 格式存储至磁盘的服务。gmetad 为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。

gweb Ganglia Web gweb 是一种利用浏览器显示gmetad 所存储数据的PHP 前端。在Web 界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。

 

2        环境准备

2.1     部署环境规划

这三台机器都部署了hadoop 组件,我们将Ganglia 主节点规划到namenode01 机,Ganglia 从节点规划到两台datanode 节点。

主机名

IP 地址

操作系统

Hadoop 组件

服务节点

监控软件

namenode01

192.168.73.100

RedHat 6.4

x86_64

Zookeeper

NameNode

SecondaryNameNode

HMaster

JobTracker

监控服务主节点

Ganglia

ganglia-web

php

apache

datanode01

192.168.73.101

RedHat 6.4

 x86_64

TaskTracker

Zookeeper

HRegionServer

DataNode

被监控从节点

ganglia

datanode02

192.168.73.101

RedHat 6.4

x86_64

TaskTracker

Zookeeper

HRegionServer

DataNode

被监控从节点

ganglia

2.2     软件下载地址

1 ganglia -3.6.0 下载地址

https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/

2 ganglia-web -3.5.10 下载地址

http://jaist.dl.sourceforge.net/project/ganglia/ganglia-web/

3 httpd-2.2.23 下载地址

http://archive.apache.org/dist/httpd/

4 php -5.4.10 下载地址

http://cn2.php.net/downloads.php

2.3     软件包检查

安装Ganglia 监控软件前需要提前安装如下软件包,如检查 以下软件包未安装的,可以通过操作镜像文件来安装。

rpm   -q gcc \

glibc   \

glibc-common   \

rrdtool   \

rrdtool-devel   \

apr  \

apr-devel   \

expat   \

expat-devel   \

pcre   \

pcre-devel   \

dejavu-lgc-sans-mono-fonts  \

dejavu-sans-mono-fonts    

2.4     安装confuse

libconfuse 是一个用C 实现配置文件解析器库,授权的ISC 许可的条件下,它支持段(列表)和值(字符串,整数,浮点数,布尔值或其他部分),以及一些其他功能(如单/ 双引号字符串,环境变量扩展,功能嵌套include 语句)。它可以添加配置文件的能力,使用简单的API 使程序读取配置文件非常容易

tar -zxf /usr/local/confuse-2.7.tar.gz

cd confuse-2.7

./configure CFLAGS=-fPIC --disable-nls

make && make install

2.5     安装python

Ganglia  指标监控可以通过 Python 模块来自定义的指标,因此我们这边需要安装 python

tar -jxf /usr/local/Python-2.7.3.tar.bz2

./configure  --prefix=/usr/local  --enable-shared 

make && make install

 

配置共享库

vi /etc/ld.so.conf

--  增加如下内容

/usr/local/lib

启用配置

ldconfig

3        Ganglia 安装

3.1    安装 ganglia( 所有节点都要安装 )

tar -zxf /usr/local/ganglia-3.6.0.tar.gz

cd ganglia-3.6.0

 ./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec --with-python=/usr/local

make && make install

3.2    安装 ganglia-web ( 主节点安装 )

tar   -zxf ganglia-web-3.5.10.tar.gz -C /opt/ganglia/

cd   /opt/ganglia/ganglia-web-3.5.10

cp   conf_default.php conf.php

3.2.1   修改配置

1 、/opt/ganglia/ganglia-web-3.5.10/ conf.php ,修改以下变量

$conf['gmetad_root'] = "/opt/ganglia/ganglia-web-3.5.10";

 

2 、/opt/ganglia/ganglia-web-3.5.10/header.php ,修改以下变量

<?php

session_start();

ini_set('date.timezone','PRC');      -- 修改时区为本地时区

if (isset($_GET['date_only'])) {

  $d = date("r");

  echo $d;

  exit(0);

}

 

3 、新建临时目录

mkdir   –p /opt/ganglia/ganglia-web-3.5.10/dwoo/cache

mkdir   –p /opt/ganglia/ganglia-web-3.5.10/dwoo/compiled

chmod   777 /opt/ganglia/ganglia-web-3.5.10/dwoo/cache

chmod   777 /opt/ganglia/ganglia-web-3.5.10/dwoo/compiled

3.3    安装 apache ( 主节点安装 )

tar -zxf httpd-2.2.23.tar.gz

 cd httpd-2.2.23

 ./configure --prefix=/usr/local/apache2

 make && make install

3.4    安装 php ( 主节点安装 )

tar -zxf php-5.4.10.tar.gz

cd php-5.4.10

./configure --prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs  --with-mysql=/usr

make  && make install

3.5    使用 apache 发布 ganglia-web ( 主节点安装 )

vi   /usr/local/apache2/conf/httpd.conf

<IfModule dir_module>

    DirectoryIndex index.html index.php

    AddType application/x-httpd-php .php

</IfModule>

 

在文件最后增加如下内容

# ganglia

Alias /ganglia "/opt/ganglia/ganglia-web-3.5.10"

<Directory "/opt/ganglia/ganglia-web-3.5.10">

     AuthType Basic

     Options None

     AllowOverride None

     Order allow,deny

     Allow from all

</Directory>

 

启动 httpd 服务

/usr/local/apache2/bin/apachectl restart

4        配置Ganglia

4.1     配置gmetad ( 主节点配置)

cd ganglia-3.6.0

cp ./gmetad/gmetad.init /etc/init.d/gmetad

cp ./gmetad/gmetad.conf /usr/local/ganglia/etc/

 

vi /etc/init.d/gmetad

GMETAD=/usr/local/ganglia/sbin/gmetad

 

vi /usr/local/ganglia/etc/gmetad.conf

data_source "duangr-cluster" 10  namenode01   datanode01  datanode02

xml_port 8651

interactive_port 8652

rrd_rootdir "/opt/ganglia/rrds"

case_sensitive_hostnames 0

 

chown -R nobody:nobody /export/home/ganglia/rrds

启动 gmetad 服务 , 并设为开机自动运行

service gmetad restart

chkconfig --add gmetad

4.2      配置 gmond ( 所有节点配置 )

cd ganglia-3.6.0

cp ./gmond/gmond.init /etc/init.d/gmond 

./gmond/gmond -t > /usr/local/ganglia/etc/gmond.conf

 

vi /etc/init.d/gmond  

GMOND=/usr/local/ganglia/sbin/gmond

 

vi /usr/local/ganglia/etc/gmond.conf

cluster {

  name = "duangr-cluster"

  owner = "nobody"

  latlong = "unspecified"

  url = "unspecified"

}

 

复制python module到ganglia部署目录

mkdir /usr/local/ganglia/lib64/ganglia/python_modules

cp ./gmond/python_modules/*/*.py /usr/local/ganglia/lib64/ganglia/python_modules

cp ./gmond/python_modules/conf.d/*.pyconf  /usr/local/ganglia/etc/conf.d

 

启动gmond服务,并设为开机自动运行

service gmond  restart

chkconfig --add  gmond

5        监控配置

5.1     监控 hadoop 配置 (hadoop 集群所有节点 )

1 /opt/hadoop/etc/Hadoop/hadoop-metrics2.properties 在配置文件末尾新增以下配置

*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

*.sink.ganglia.period=10

*.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

resourcemanager.sink.ganglia.servers=239.2.11.71:8649

datanode.sink.ganglia.servers=239.2.11.71:8649

nodemanager.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

 

2 、其它节点直接将配置文件 COPY 过去

Scp /opt/hadoop/etc/Hadoop/hadoop-metrics2.properties   datanode01: /opt/hadoop/etc/Hadoop/

Scp /opt/hadoop/etc/Hadoop/hadoop-metrics2.properties   datanode02: /opt/hadoop/etc/Hadoop/

5.2     监控 hbase 配置 (hbase 集群所有节点 )

1 /opt/hbase/conf/hadoop-metrics2-hbase.properties 在配置文件末尾新增以下配置

*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

*.sink.ganglia.period=10

hbase.sink.ganglia.period=10

hbase.sink.ganglia.servers=239.2.11.71:8649

 

2 、其它节点直接将配置文件 COPY 过去

Scp /opt/hbase/conf/hadoop-metrics2-hbase.properties   datanode01: /opt/hbase/conf/

Scp /opt/hbase/conf/hadoop-metrics2-hbase.properties   datanode02: /opt/hbase/conf/

6        服务重启

1、   重启hbase hadoop 服务

/opt/hbase/bin/stop-hbase.sh

/opt/Hadoop/sbin/stop-all.sh

/opt/Hadoop/sbin/satrt-all.sh

/opt/hbase/bin/start-hbase.sh

 

2、   重启Ganglia

Service gmond restart

Service gmetad restart

7        监控界面

Ganglia 监控登录地址 http://192.168.73.100/ganglia

 

1 、节点信息

 

2、   主机资源监控界面

(包含 cpu network memory

3 hdfs 监控界面

4 HBASE 监控界面


 

有需要的朋友可以关注我的公众号,文章每日一更


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28833846/viewspace-2723434/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
负责数据库、中间件、大数据等基础软件建设、优化和业务保障工作。具有10年的电信与银行企业一线/二线运维管理经验。目前专注研究云计算、中间件和数据库等领域技术研究。持有Oracle OCP、weblogic OCP、Docker容器、PGCE和阿里云ACP等认证

注册时间:2020-06-22

  • 博文量
    65
  • 访问量
    27666