【原创】ganglia监控hadoop集群

简介: 最近研究了一下ganglia监控hadoop集群,大致可以监控hadoop集群中节点的性能。比如CPU、内存、IO、交换分区等。这里就不一一介绍!网上部署监控的文档很多,乱起八糟的也很多,主要是每个人的环境都不一样导致,但是我自己看的还是比较头晕,以至于有的人还直接发布安装脚本,结果可笑的就是脚本拿下来后运行直接报错。
最近研究了一下ganglia监控hadoop集群,大致可以监控hadoop集群中节点的性能。比如CPU、内存、IO、交换分区等。这里就不一一介绍!网上部署监控的文档很多,乱起八糟的也很多,主要是每个人的环境都不一样导致,但是我自己看的还是比较头晕,以至于有的人还直接发布安装脚本,结果可笑的就是脚本拿下来后运行直接报错。这里就不说别人不好的地方了,分享技术是种好事,但是不正确的文档肯定会导致初学者盲目的。所以切记分享技术的时候记得说清楚当时的环境,这里说下我的这个环境吧!
hadoop集群所有节点加起来四台机器,这里我挑slave1作为监控机,另外三台为被监控机。请看下图:
主机名   IP地址          用途       系统版本           软件包安装情况
msater   192.168.15.95   namenode   RedHat4.8(64位)    安装系统所有软件包都已安装
slave1   192.168.15.72   datanode   同上               同上
slave2   192.168.15.71   datanode   同上               同上
slave3   192.168.15.132  datanode   同上               同上
其实ganglia主要分为两个守护进程:
监控机主要跑gmetad进程,apache进程,当然如果你要本机监控本机的话还得跑一个gmond进程。而被监控机主要跑一个gmond进程了。因为监控画面需要画面rrdtool,所以监控机要比被监控机多两个软件,一个是rrdtool,一个是gmetad。
下面是我部署监控端的脚本(经过多次试验肯定问题,随着时间的关系可能有的下载链接失效,这里就烦请各位童鞋自己找链接了哈),提醒下各位如果用系统自带的apache的话,必须是软件包默认都安装好的,你可以在/var/www/html目录下新建php测试页,如果能看见一些信息,就说明apache已经加载了php。这里是linux+apache+php环境。还有记得把你的apache主目录指向/var/www/html目录。
[root@slave1 ~]# more ganglia.sh
#!/bin/bash
#############################################################################################################
mkdir /root/software
cd /root/software
#下载rrdtool并编译安装
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
tar zxvf rrdtool-1.2.27.tar.gz
cd rrdtool-1.2.27
./configure --prefix=/usr/local/rrdtool
make && make install
#############################################################################################################
cd /root/software
#下载expat并编译安装
wget http://downloads.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz?use_mirror=cdnetworks-kr-2
tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --prefix=/usr/local/expat
make && make install
#我的是64位操作系统,所以需要拷贝一些链接库文件
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
#############################################################################################################
cd /root/software
#下载apr并编译安装
wget http://labs.renren.com/apache-mirror/apr/apr-1.4.6.tar.gz
tar zxvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install
cd /root/software
#下载apr-util并编译安装
wget http://labs.renren.com/apache-mirror/apr/apr-util-1.4.1.tar.gz
tar zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make && make install
#我的是64位操作系统,所以需要拷贝一些链接库文件
cp -f /usr/local/apr/include/apr-1/* /usr/local/apr/include/
mkdir -p /usr/local/apr/lib64
cp -a -f /usr/local/apr/lib/* /usr/local/apr/lib64/
#############################################################################################################
cd /root/software
#下载confuse并编译安装
wget http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
tar zxvf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse
make && make install
#我的是64位操作系统,所以需要拷贝一些链接库文件
mkdir -p /usr/local/confuse/lib64
cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
#####################################################################################################################
cd /root/software
#下载ganglia并编译安装
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.1.7/ganglia-3.1.7.tar.gz
tar zxvf ganglia-3.1.7.tar.gz
cd ganglia-3.1.7
./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat --with-libconfuse=/usr/local/confuse --with-gmetad --enable-gexec --enable-status -sysconfdir=/etc/ganglia
make && make install
#####################################################################################################################
#新建ganglia程序目录。
mkdir /var/www/html/ganglia
#将ganglia网页程序放入到新建的文件夹中      
cp -r web/* /var/www/html/ganglia
#新建rrdtool放入图像的地方(程序默认的)
mkdir -p /var/lib/ganglia/rrds
#修改属主属组,如果你不改的话,则页面会显示不出来,一会咱们可以看看!
chown nobody:nobody /var/lib/ganglia/rrds
#拷贝启动脚本到系统默认的路径
cp gmond/gmond.init /etc/rc.d/init.d/gmond
cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
#拷贝启动文件到系统默认路径
cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad
cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
#生成默认的gmond.conf文件
gmond -t | tee /etc/ganglia/gmond.conf
#脚本结束
#####################################################################################################################
下面开始修改配置文件了,主要是gmetad.conf和gmond.conf文件
vi /etc/ganglia/gmetad.conf
将这一行修改为你自己定义的源和主机IP
data_source "my cluster" localhost
改为
data_source "Hadoop" 192.168.15.72
保存退出!
vi /etc/ganglia/gmond.conf
将这一行name的值修改为刚刚自己定义的源
cluster {
  name = "unspecified"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
改为
cluster {
  name = "Hadoop"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
保存退出!
最后我们修改/var/www/html/ganglia/conf.php
将这行改为我们rrdtool编译的路径,默认是/usr
define("RRDTOOL", "/usr/bin/rrdtool");
改为
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
基本配置就完成了哈!
下面我们启动看看效果!
[root@slave1 ~]# /etc/init.d/httpd start
Starting httpd: httpd: Could not determine the server's fully qualified domain name, using 192.168.15.72 for ServerName
                                                           [  OK  ]
[root@slave1 ~]# /etc/init.d/gmetad start
Starting GANGLIA gmetad:                                   [  OK  ]
[root@slave1 ~]# /etc/init.d/gmond start
Starting GANGLIA gmond:                                    [  OK  ]
测试用浏览器输入http://IP地址/ganglia
img_ae7303442888536af94184b1f4f15d2d.jpg
这样就基本完成了本机监控本机了!
下面来说两个常见的错误:
img_c60e3e3b334b299722f6a7d7811ef110.jpg
这个错误就是rrds属主属组导致的。修改为nobody则重启apache、gmetad、gmond三个服务。
chown nobody:nobody /var/lib/ganglia/rrds
另外一个错误就是图片显示不出来
img_f2fb69d4322b085094c3224aa18681f6.jpg
这个问题就是conf.php文件没有修改导致。把路径指向自己rrdtool编译后安装的目录就OK了!我这里则是/usr/local/rrdtool/bin/rrdtool路径!
大致本机安装ganglia监控本机就这样吧!下节将介绍被监控机部署ganglia脚本。
目录
相关文章
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
129 6
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
67 4
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
31 3
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
55 3
|
1月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
61 1
|
1月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
36 1
|
1月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
39 1
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
62 2
|
8天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
41 2
|
8天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
34 1