阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何监控你的Hadoop+Hbase集群?

542次阅读
没有评论

共计 9331 个字符,预计需要花费 24 分钟才能阅读完成。

前言

监控 Hadoop 的框架有不少,如 CDH 的 CM 组件和 Ambari 都可以监控他们自己的 hadoop,但是它不能监控 apache 的 hadoop,如果你是使用原生的 Apache Hadoop,那么也没关系,原生的 Hadoop 天生就提供了非常详细的对接 Ganglia 的 jmx 接口,里面包含了各个核心组件 metrics 获取功能,这一点你可以查看 hadoop 和 hbase 包括 spark 的 conf 下面的 metrics 文件里面配置,就能得到验证。

(一)Ganglia 是什么?

Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。

(二)Ganglia 的主要组件

1,gmond(Ganglia Monitioring Daemon):

gmond 是 ganglia 监控的基于多线程模式的守护进程,它需要安装运行在每个你想要监控的机器上,安装非常简单,你不需要有一个通用的 NFS 系统或者安装一个数据库后端存储,或者安装指定一个账户,也不需要维护一个繁琐的配置文件。

gmond 有 4 个主要的职责:

A:监控主机状态变化

B:发现或发布相关变化

C:监控其他的所有的 ganglia 节点通过一个单播(unicast)或者多播(multicast)通道模式

D:答复集群转态通过一个 XML 描述的信息

2,gmetad(Ganglia Meta Daemon)

gmetad 是 ganglia 的元数据守护进程,通常只需要一个监控集群只需要一个元数据守护进程即可,当然如果你想实现高可用的数据冗余,你也可以配置多个,gmetad 主要是收集汇聚解析从各个 gmond 进程汇报发送过来的信息,并将其保存至 rrd 数据库里,供前端查询展示所需。

3,ganglia-web(Ganglia PHP Web Frontend)

ganglia 的前端展示框架,负责以图形化的方式,展示集群的一些 metics,并且支持分钟,小时,日,月,年,级别的汇总展示,虽然页面丑陋了点,但不不算华而不实,主要是将 rrd 里面的 XML 的数据,解析为静态的 HTML 网页,方便管理员查询集群的 cpu,内存,磁盘,网络,等一些自定义的 metrics 的某个时间段的负载展现图

(三)Ganglia 的架构拓扑

如何监控你的 Hadoop+Hbase 集群?

(四)Ganglia 的安装

假设有 3 台机器 CentOS6.5 的系统,分别如下:

192.168.1.187  hadoop hbase  gmetad  gmond ganglia-web

192.168.1.186  hadoop hbase  gmond

192.168.1.184  hadoop hbase  gmond

主节点上安装的组件安装 gmetad,gmond,ganglia-web

1,安装依赖组件:

yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

2,安装 ganglia 的 epel 源,每台机器上
如果是 centos7 的系统:

# yum install epel-release 
# yum install ganglia-web ganglia-gmetad ganglia-gmond 或者直接 yum install -y ganglia*

如果是 centos6 的系统:

sudo rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install -y ganglia*

如何监控你的 Hadoop+Hbase 集群?

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

3,配置 ganglia
主节点上,需要配置三个东西:
A : /etc/ganglia/gmetad.conf  只需要配置 2 个核心选项即可

data_source “hadoop” 192.168.1.187 192.168.1.186 192.168.1.184  // 使用单播的方式,加入所有要监控的机器 ip,默认端口是 8649
case_sensitive_hostnames 1  // 是否忽略大小写,1 代表不忽略,如果你的机器名里面含有大写的字母,一定要配置 1,否则 ganglia 的前端图形就不能正确的读取 rrds 里面的每个机器的数据

B : /etc/ganglia/gmond.conf

cluster {
  name = “hadoop” #配置的名字与 gmetad 里面的需要一致
  owner = “unspecified”
  latlong = “unspecified”
  url = “unspecified”
}

udp_send_channel {
  #mcast_join = 239.2.11.71 #注释掉默认的多播地址
  host = 192.168.1.187  # 使用单播模式,发送消息
  port = 8649
  ttl = 1
}

udp_recv_channel {
  #mcast_join = 239.2.11.71
  port = 8649
  bind = 192.168.1.187 #主节点的这个配置需要加上,用来接受其他机器上的传输过来的数据,特别注意从节点上的这项配置是
  retry_bind = true
}

C : /etc/httpd/conf.d/ganglia.conf

<Location /ganglia>
  Order deny,allow
  Allow from all #允许所有的机器访问
  #Deny from all
  #Allow from 127.0.0.1
 # Allow from ::1
  # Allow from .example.com
</Location>

4,从节点只要安装 gmond 组件即可

yum install -y ganglia-gmond

然后配置 gmond.conf

cluster {
  name = “hadoop” #配置的名字与 gmetad 里面的需要一致
  owner = “unspecified”
  latlong = “unspecified”
  url = “unspecified”
}

udp_send_channel {
  #mcast_join = 239.2.11.71 #注释掉默认的多播地址
  host = 192.168.1.187  # 使用单播模式,发送消息
  port = 8649
  ttl = 1
}

udp_recv_channel {
  #mcast_join = 239.2.11.71
  port = 8649
  #bind = 192.168.1.187  仅仅安装 gmond 的节点上,不需要这项配置,加上会报错
  retry_bind = true
}

5,如何改变 rrd 存储路径:
最好的办法,就是使用软连接,直接改 gmetad 里面的配置有时候可能不生效

默认的存储路径在 /var/lib/ganglia/rrds/
你可以在这个目录,建一个软连接,改变此库的存储路径:

在 /var/lib/ganglia/rrds 新建软连接,第一个参数是新路径,第二个参数是默认路径

sudo ln -s /ROOT/server/rrds  /var/lib/ganglia/rrds

改变 rrds 的 tools 的默认路径:
http://stackoverflow.com/questions/26619473/how-to-change-the-storage-path-from-rrdtool-on-the-ganglia
需要注意改变后的路径的权限和用户赋值

mkdir -p /some/other/place/
chown -R ganglia:ganglia /some/other/place/
chmod -R 777 /some/other/place/

5,如何卸载组件?

sudo yum remove -y  ganglia-web ganglia-gmetad

主节点启动

sudo service gmetad start
sudo service gmond start
sudo service httpd start

从节点

sudo service gmond start

出现错误后,可以查看系统 log 的日志
sudo tail -f /var/log/messages
大部分错误,在这里都能看到提示

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-03/129534p2.htm

(五)Hadoop 和 Hbase 的监控

修改 hadoop-metrics2.properties 文件,在行末添加如下配置:

*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.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=192.168.1.187:8649    #当有多个 ganglia 监控系统时,以逗号分隔
datanode.sink.ganglia.servers=192.168.1.187:8649    #都指定 ganglia 服务器
resourcemanager.sink.ganglia.servers=192.168.1.187:8649
nodemanager.sink.ganglia.servers=192.168.1.187:8649
mrappmaster.sink.ganglia.servers=192.168.1.187:8649
jobhistoryserver.sink.ganglia.servers=192.168.1.187:8649

修改 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=192.168.1.187:8649

完了分发 hadoop 和 hbase 的配置文件,到所有的机器上,然后重启集群

(六)访问 http://192.168.1.187:80/ganglia 查看监控图

如何监控你的 Hadoop+Hbase 集群?

如何监控你的 Hadoop+Hbase 集群?

如何监控你的 Hadoop+Hbase 集群?

yarn 监控

如何监控你的 Hadoop+Hbase 集群?

hbase 的监控

如何监控你的 Hadoop+Hbase 集群?

至此,我们的监控系统就建立起来了,需要注意的是,当监控上 hadoop 的相关的指标时,rrds 库的体积,膨胀比较大,所以这个库存的盘一定要大一点,或者在 gmetad 里面开启 gzip 压缩,否则把系统盘撑爆了,其他的程序有可能也会受到影响。

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

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/129534.htm

前言

监控 Hadoop 的框架有不少,如 CDH 的 CM 组件和 Ambari 都可以监控他们自己的 hadoop,但是它不能监控 apache 的 hadoop,如果你是使用原生的 Apache Hadoop,那么也没关系,原生的 Hadoop 天生就提供了非常详细的对接 Ganglia 的 jmx 接口,里面包含了各个核心组件 metrics 获取功能,这一点你可以查看 hadoop 和 hbase 包括 spark 的 conf 下面的 metrics 文件里面配置,就能得到验证。

(一)Ganglia 是什么?

Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。

(二)Ganglia 的主要组件

1,gmond(Ganglia Monitioring Daemon):

gmond 是 ganglia 监控的基于多线程模式的守护进程,它需要安装运行在每个你想要监控的机器上,安装非常简单,你不需要有一个通用的 NFS 系统或者安装一个数据库后端存储,或者安装指定一个账户,也不需要维护一个繁琐的配置文件。

gmond 有 4 个主要的职责:

A:监控主机状态变化

B:发现或发布相关变化

C:监控其他的所有的 ganglia 节点通过一个单播(unicast)或者多播(multicast)通道模式

D:答复集群转态通过一个 XML 描述的信息

2,gmetad(Ganglia Meta Daemon)

gmetad 是 ganglia 的元数据守护进程,通常只需要一个监控集群只需要一个元数据守护进程即可,当然如果你想实现高可用的数据冗余,你也可以配置多个,gmetad 主要是收集汇聚解析从各个 gmond 进程汇报发送过来的信息,并将其保存至 rrd 数据库里,供前端查询展示所需。

3,ganglia-web(Ganglia PHP Web Frontend)

ganglia 的前端展示框架,负责以图形化的方式,展示集群的一些 metics,并且支持分钟,小时,日,月,年,级别的汇总展示,虽然页面丑陋了点,但不不算华而不实,主要是将 rrd 里面的 XML 的数据,解析为静态的 HTML 网页,方便管理员查询集群的 cpu,内存,磁盘,网络,等一些自定义的 metrics 的某个时间段的负载展现图

(三)Ganglia 的架构拓扑

如何监控你的 Hadoop+Hbase 集群?

(四)Ganglia 的安装

假设有 3 台机器 CentOS6.5 的系统,分别如下:

192.168.1.187  hadoop hbase  gmetad  gmond ganglia-web

192.168.1.186  hadoop hbase  gmond

192.168.1.184  hadoop hbase  gmond

主节点上安装的组件安装 gmetad,gmond,ganglia-web

1,安装依赖组件:

yum -y install httpd-devel automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

2,安装 ganglia 的 epel 源,每台机器上
如果是 centos7 的系统:

# yum install epel-release 
# yum install ganglia-web ganglia-gmetad ganglia-gmond 或者直接 yum install -y ganglia*

如果是 centos6 的系统:

sudo rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install -y ganglia*

如何监控你的 Hadoop+Hbase 集群?

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

3,配置 ganglia
主节点上,需要配置三个东西:
A : /etc/ganglia/gmetad.conf  只需要配置 2 个核心选项即可

data_source “hadoop” 192.168.1.187 192.168.1.186 192.168.1.184  // 使用单播的方式,加入所有要监控的机器 ip,默认端口是 8649
case_sensitive_hostnames 1  // 是否忽略大小写,1 代表不忽略,如果你的机器名里面含有大写的字母,一定要配置 1,否则 ganglia 的前端图形就不能正确的读取 rrds 里面的每个机器的数据

B : /etc/ganglia/gmond.conf

cluster {
  name = “hadoop” #配置的名字与 gmetad 里面的需要一致
  owner = “unspecified”
  latlong = “unspecified”
  url = “unspecified”
}

udp_send_channel {
  #mcast_join = 239.2.11.71 #注释掉默认的多播地址
  host = 192.168.1.187  # 使用单播模式,发送消息
  port = 8649
  ttl = 1
}

udp_recv_channel {
  #mcast_join = 239.2.11.71
  port = 8649
  bind = 192.168.1.187 #主节点的这个配置需要加上,用来接受其他机器上的传输过来的数据,特别注意从节点上的这项配置是
  retry_bind = true
}

C : /etc/httpd/conf.d/ganglia.conf

<Location /ganglia>
  Order deny,allow
  Allow from all #允许所有的机器访问
  #Deny from all
  #Allow from 127.0.0.1
 # Allow from ::1
  # Allow from .example.com
</Location>

4,从节点只要安装 gmond 组件即可

yum install -y ganglia-gmond

然后配置 gmond.conf

cluster {
  name = “hadoop” #配置的名字与 gmetad 里面的需要一致
  owner = “unspecified”
  latlong = “unspecified”
  url = “unspecified”
}

udp_send_channel {
  #mcast_join = 239.2.11.71 #注释掉默认的多播地址
  host = 192.168.1.187  # 使用单播模式,发送消息
  port = 8649
  ttl = 1
}

udp_recv_channel {
  #mcast_join = 239.2.11.71
  port = 8649
  #bind = 192.168.1.187  仅仅安装 gmond 的节点上,不需要这项配置,加上会报错
  retry_bind = true
}

5,如何改变 rrd 存储路径:
最好的办法,就是使用软连接,直接改 gmetad 里面的配置有时候可能不生效

默认的存储路径在 /var/lib/ganglia/rrds/
你可以在这个目录,建一个软连接,改变此库的存储路径:

在 /var/lib/ganglia/rrds 新建软连接,第一个参数是新路径,第二个参数是默认路径

sudo ln -s /ROOT/server/rrds  /var/lib/ganglia/rrds

改变 rrds 的 tools 的默认路径:
http://stackoverflow.com/questions/26619473/how-to-change-the-storage-path-from-rrdtool-on-the-ganglia
需要注意改变后的路径的权限和用户赋值

mkdir -p /some/other/place/
chown -R ganglia:ganglia /some/other/place/
chmod -R 777 /some/other/place/

5,如何卸载组件?

sudo yum remove -y  ganglia-web ganglia-gmetad

主节点启动

sudo service gmetad start
sudo service gmond start
sudo service httpd start

从节点

sudo service gmond start

出现错误后,可以查看系统 log 的日志
sudo tail -f /var/log/messages
大部分错误,在这里都能看到提示

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-03/129534p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计9331字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7992307
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...