虽然工作几年了,却是第一篇技术博客。不为别的,用多了前辈们的分享,不出点力也说不过去不是!
废话不多说,如题。这是一篇非常详尽的Ganglia监控Apache Hadoop集群的部署实施文档并附有全面的监控参数和解析。能共享的部分都贴出来给需要的朋友作为参考吧。
Gnaglia集群节点分布(拓扑)
解决方案
1、yum快速安装。
2、使用ganglia单播模式(减少网络带宽占用等)
3、每个节点安装ganglia gmond(agent)服务来收集自己节点监控信息,hadoopnode32节点作为汇总连同本机监控信息发送给ganglia gmetad服务。
4、hadoopnode32节点安装ganglia gmetad服务用来收集所有监控信息。
5、hadoopnode32安装ganglia web服务展示集群监控信息。
6、Hadoop集群中配置ganglia监控参数,使ganglia集群可以监控并展示hadoop集群运行指标。
Ganglia集群监控安装部署
1、基础环境配置
系统:CentOS 6.5
Ganglia :version:3.7.1(yum安装,版本可能不同)
关闭防火墙和selinux
2、ganglia节点安装
2.1、升级rpm,找到ganglia安装包。
2.1.1、每个节点执行 yum search ganglia-gmond
显示搜索失败,当前RPM发行版中没有Ganglia安装包。
2.1.2、每个节点执行
2.1.3、再次执行yum search ganglia-gmond
2.2、主节点部署
2.2.1、安装gmetad
hadoopnode32节点上root用户下执行:
yum install ganglia-gmetad.x86_64 -y
yum会自动安装所需依赖包,执行过程略。
2.2.2、安装ganglia web。
yum install ganglia-web.x86_64 -y
yum会自动安装所需依赖包,执行过程略。
2.3、从节点部署
所有节点root用户下执行:
yum install ganglia-gmond.x86_64 -y
yum会自动安装所需依赖包,执行过程略。
3、ganglia节点配置
3.1、gmond.conf
hadoopndoe32节点上执行:
vim /etc/ganglia/gmond.conf
mute = no //设置本节点将不会再广播任何自己收集到的数据到网络上
deaf = no //本节点将不再接收任何其他节点广播的数据包
send_metadata_interval //设置gmond发送元数据包的时间间隔为 10 s。
设置集群名称以及所属用户。
注释掉组播,并指定单播主机地址以及端口号。
最后,保存退出并scp到剩下所有节点对应目录下覆盖原有配置。
3.2、gmetad.conf
hadoopndoe32节点上执行:
vim /etc/ganglia/gmetad.conf
设置集群名称(和gmond.conf中名称对应)、被监控的节点和端口、所属用户、轮询时间以及监控数据路径。
3.3、创建数据存储目录并为nobody用户授权。
hadoopnode32节点上root用户下执行
mkdir -p /var/lib/ganglia/rrds
chown -R nobody:nobody /var/lib/ganglia/rrds
3.4、ganglia-web配置
3.4.1、将ganglia的文件链接到apache的默认目录下
ln -s /usr/share/ganglia /var/www/ganglia
3.4.2、配置ganglia.conf
vim /etc/httpd/conf.d/ganglia.conf
即将 Deny from all 改为 Allow from all,否则在页面访问时有权限问题。
4、开启服务测试
4.1、开启ganglia服务
4.1.1、Hadoopnode32节点:
service gmetad start
4.1.2、所有节点
service gmond start
4.1.3、hadoopnode32节点
service httpd start
4.2、访问web页面
浏览器地址栏输入:
http://xxx.xxx.xxx.32/ganglia/
出现如下等信息:
至此ganglia集群监控安装部署成功。
(当然过程中出错是灰常可能的,别放弃,参考这个慢慢来!)
5、配置监控hadoop集群
5.1、配置hadoop-metrics2.properties
hadoopndoe32上执行:
cd /hadoop/hadoop-2.5.1/etc/hadoop
vim hadoop-metrics2.properties
添加以上信息,保存退出并scp到所有节点对应目录下覆盖原文件。
5.2、重启服务加入hadoop集群监控
这里可以看到很多添加进去的hadoop集群的监控参数。
设置开机自启动:
hadoopnano32节点:
chkconfig gmetad on
chkconfig httpd on
所有节点:
chkconfig gmond on
好了,比如Hbase等集群加入监控有兴趣有需要的朋友可以自己摸索下!
后附ganglia系统监控参数、hadoop集群及hbase集群监控参数一览表!
系统参数监控metrics
load_one 每分钟的系统平均负载
load_fifteen 每15分钟的系统平均负载
load_five 每5分钟的系统平均负载
boottime 系统启动时间,精确到秒
bytes_in 网络接收速度,单位bytes/sec
bytes_out 网络发送速度,单位bytes/sec
cpu_aidle 启动的空闲CPU百分比
cpu_idle 空闲CPU百分比
cpu_nice 用户进程空间内改变过优先级的进程占用CPU百分比
cpu_num CPU线程总数
cpu_report CPU使用情况汇总报告
cpu_speed CPU速度(MHz)
cpu_system 内核空间占用CPU百分比
cpu_user 用户空间占用CPU百分比
cpu_wio CPU空闲时的最大I/O请求
proc_total 进程总数
swap_free 空闲交换分区空闲大小
swap_total 空闲交换分区大小(KBs显示)
disk_free 剩余磁盘空间
disk_total 磁盘总大小
ip_address ip地址列表
last_reported 最后一次报告时间
load_report 系统负载汇总报告
location 定位信息(经纬度)
machine_type 系统版本(X86或64)
mem_buffers 内核缓存的