首页 > 代码库 > Ganglia监控spark1.6.1

Ganglia监控spark1.6.1

Ganglia监控spark1.6.1

  Spark的Metrics系统允许用户把Spark metrics信息报告到Ganglia,gmond服务收集metrics信息,最后统一汇总到gmetad并通过web界面呈现。主要着重于如何配置ganglia以及spark的metrics,至于如何编译spark支持ganglia以及ganglia的安装另行详述。

1.编译spark支持ganglia

spark默认不把ganglia相关的类包含在发行包中 ,所以在官网上下载的包是不支持ganglia的,所以我们要加上-Pspark-ganglia-lgpl自行编译,可以看到在最后打包出来的spark-assembly-xxxx.jar包中包含了ganglia相关的类:

技术分享

2.安装并配置ganglia

自行安装ganglia相关服务:gmetad,gmond以及ganglia-web。以配置ganglia单播为例配置gmetad,gmond

2.1配置服务端gmond.conf

gmond.conf配置文件位于/etc/ganglia/gmond.conf,编辑配置文件3个地方:

cluster {  name = "unspecified"   #集群名称  owner = "unspecified"  latlong = "unspecified"  url = "unspecified"}
udp_send_channel {  #mcast_join = 239.2.11.71  #因为配置单播,所以去掉多播的配置  host = spmaster       #spmaster为主节点主机名  port = 8649  ttl = 1}
udp_recv_channel {  #mcast_join = 239.2.11.71   #单播要注掉mcast_join与bind  port = 8649  #bind = 239.2.11.71  retry_bind = true  # buffer = 10485760}

2.2配置服务端gmetad.conf

 

data_source "unspecified" spmaster:8649    #unspecified要与gmond中配置的一致

 


其它客户端,只需把/etc/ganglia/gmond.conf配置文件scp到各个节点即可。

3.安装并配置spark

自行部署spark集群,编辑$SPARK_HOME/conf/metrics.properties文件(没有可以拷贝metrics.properties.template),添加以下内容:

 

*.sink.ganglia.class=org.apache.spark.metrics.sink.GangliaSink*.sink.ganglia.host=spmaster*.sink.ganglia.port=8649*.sink.ganglia.period=10*.sink.ganglia.unit=seconds*.sink.ganglia.ttl=1*.sink.ganglia.mode=unicast*.sink.ganglia.name=unspecifiedmaster.source.jvm.class=org.apache.spark.metrics.source.JvmSourceworker.source.jvm.class=org.apache.spark.metrics.source.JvmSourcedriver.source.jvm.class=org.apache.spark.metrics.source.JvmSourceexecutor.source.jvm.class=org.apache.spark.metrics.source.JvmSource

 

更改后scp到其它spark节点,启动spark集群。

4.启动服务进行监控

启动ganglia的gmetad,gmond以及httpd服务:

 

service gmond startservice gmetad startservice httpd start

 

通过浏览器访问ganglia-web(http://spmaster/ganglia-web/)即可以看到spark相关的监控:

技术分享

ganglia里面的图表实在太多了,需要些时间去熟悉、挖掘。

 

 

 

 

 

 

 

 

  

 

Ganglia监控spark1.6.1