大数据学习中----ganglia监控spark集群

Ubuntu1804安装ganglia并监控Spark集群(standalone集群spark自带hadoop)

1.ganglia简介

Ganglia 是 UC Berkeley 发起的一个开源监视项目,可以对分布式集群的所有计算资源进行监控。
ganglia由三个组件构成:
gmond :(client)是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息
如果他是一个发送者(mute=no)他会收集基本指标,比如系统负载(load_one),CPU利用率。他同时也会发送用户通过添加C/Python模块来自定义的指标。
如果他是一个接收者(deaf=no)他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。
gmetad:(只需server端)也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的web前端。
ganglia-web :(只需server端)顾名思义,他应该安装在有gmetad运行的机器上,以便读取RRD文件。 集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA等,他们都是完全分开的,你需要为每个集群运行单独的gmond实例。
Ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。(一般使用单播)
单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段。
多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。

ganglia监控spark集群需要先将其依赖包打包到sparkyu源码中,由于Licene的限制,没有放到默认的build里面,如果需要使用,需要自己编译。在使用Maven编译Spark的时候,我们可以加上-Pspark-ganglia-lgpl选项来将Ganglia相关的类打包进spark-assembly-x.x.x-hadoopx.x.x.jar中:
(1)windows(我用的是windows)
进入gitbash:输入源码所在路径
设置maven编译时的jvm方法区大小:
set MAVEN_OPTS=-Xmx2g -XX:MaxPermSize=5120M -XX:ReservedCodeCacheSize=512m
编译:
mvn -DskipTests -Pspark-ganglia-lgpl -Phadoop-2.6 -Dhadoop.version=2.6.0 clean package
最后生成源码包目录下生成jar包
生成部署包:
./dev/make-distribution.sh --name 2.6.0 --tgz -Phadoop-2.6 -Pspark-ganglia-lgpl
(2)虚拟机ubuntu
在终端cmd进行(windows是在gitbash中输入指令)

2.系统配置:
ubuntu18.04,spark2.3.3-bin-hadoop2.7,standalone集群(无hadoop集群)。

很重要的一点:spark是上面进行部署后的安装包,用带有ganglia的spark安装包搭建集群。这一步之后再做下面的操作
2.1.安装依赖软件apache,php,rrdtool
ganglia需要使用apache服务,rrd服务,php服务
ubuntu16.04以上安装PHP7.0以上版本。()
终端指令(master+slave):
sudo apt-get install rrdtool apache2 php

安装apache2 php7 module
sudo apt-get install libapache2-mod-php7.2

安装ganglia
//安装过程中会重启apache,选择yes
sudo apt-get install ganglia-monitor gmetad ganglia-webfrontend
(master都要安装,slave只安装ganglia-monitor)

2.2.修改配置文件/etc/ganglia/gmetad.conf和gmond.conf

配置gmetad.conf
找到下列配置项,并修改
data_source “hadoop-cluster” fang-acer
gridname “Fang”
case_sensitive_hostnames 1
data_source 中”hadooop-cluster”为集群名称,后面跟着集群节点ip或主机名,默认host端口为8649
data_source后多个节点使用空格分隔
gridname为网格名称,一个网格包含多个集群
设置对主机名大小写不敏感,如果不设置可能遇到大写的主机名出现访问错误

配置gmond.conf(每个节点配置一样)
在配置文件中找到下列配置项,并修改
cluster {
name = “fang-cluster”//为gmetad.conf中设置的集群名称
owner = “unspecified”
latlong = “unspecified”
url = “unspecified”
}
/* Feel free to specify as many udp_send_channels as you like. Gmond used to only support having a single channel */
udp_send_channel {
#mcast_join = 239.2.11.71
host = fang-acer//gmetad服务的节点 (master节点)
port = 8649
ttl = 1
}

/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
bind = fang-acer//gmetad服务的节点 (master节点)
retry_bind = true
}

2.3配置apache web服务
需要将ganglia的web配置复制到apache配置中,以便能够访问ganglia web页面
sudo cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf

2.4启动ganglia(master节点终端输入指令即可)
在这里插入图片描述
//启动gmond
sudo service ganglia-monitor start
//启动gmetad
sudo service gmetad start
//重启apache
sudo service apache2 restart
或者
sudo /etc/init.d/ganglia-monitor start
sudo /etc/init.d/gmetad start
sudo /etc/init.d/apache2 restart

进入网页:主节点名称(fang-acer)/ganglia/
2.5 监控Spark

需要修改Spark安装目录下conf中的metrics.properties
添加如下内容(每个节点配置一样):

master.source.jvm.class=org.apache.spark.metrics.source.JvmSource
worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource
driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource
executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource
*.sink.ganglia.class=org.apache.spark.metrics.sink.GangliaSink
*.sink.ganglia.host=fang-acer
*.sink.ganglia.port=8649
*.sink.ganglia.period=10
*.sink.ganglia.unit=seconds
*.sink.ganglia.ttl=1
*.sink.ganglia.mode=unicase
*.sink.ganglia.name=unspecified

简要概括spark的编译和生成部署包:
step1:官网或者GitHub上下载源码

step2:解压源码

step3:设置maven编译时的jvm方法区大小
set MAVEN_OPTS=-Xmx2g -XX:MaxPermSize=5120M -XX:ReservedCodeCacheSize=512m

step4:编译
mvn -DskipTests -Pspark-ganglia-lgpl -Phadoop-2.6 -Dhadoop.version=2.6.0 clean package
最后生成源码包目录下生成jar包

step5:生成部署包
./dev/make-distribution.sh --name 2.6.0 --tgz -Phadoop-2.6 -Pspark-ganglia-lgpl

原文链接:https://blog.csdn.net/qq_27667379/article/details/88312246

原文链接:https://blog.csdn.net/u010638969/article/details/53909253


版权声明:本文为qq_39124136原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。