Spark metrics整理

链接:https://www.jianshu.com/p/e42ad9cb66a1

 

概述

spark使用metrics的包路径为:org.apache.spark.metrics,核心类:MetricsSystem。可以把Spark Metrics的信息报告到各种各样的Sink,比如HTTP、JMX以及CSV文件。

Spark的Metrics系统目前支持以下的实例:
○ master:Spark standalone模式的master进程;
○ worker:Spark standalone模式的worker进程;
○ executor:Spark executor;
○ driver:Spark driver进程;
○ applications:master进程里的一个组件,为各种应用作汇报。

metrics结构主要分为sink和source,source指数据来源,Source内属性包含name和MetricRegistry,主要有:MasterSource、WorkerSource、ApplicationSource、StreamingSource、BlockManagerSource等。

 

sink是将指标发送到哪,目前有:ConsoleSink、GangliaSink、GraphiteSink、MetricsServlet、JmxSink、CsvSink

配置

在spark的conf目录下metrics.properties文件中配置,默认使用此文件,也可以通过-Dspark.metrics.conf=xxx指定。

--conf "spark.metrics.conf=metrics.properties" \

--files "hdfs://nameservice1/user/adore.chen/app_1/metrics.properties" \

sink配置参数说明

ConsoleSink 是记录Metrics信息到Console中

名称默认值描述
classorg.apache.spark.metrics.sink.ConsoleSinkSink类
period10轮询间隔
unitseconds轮询间隔的单位

CSVSink 定期的把Metrics信息导出到CSV文件中

名称默认值描述
classorg.apache.spark.metrics.sink.CsvSinkSink类
period10轮询间隔
unitseconds轮询间隔的单位
directory/tmpCSV文件存储的位置

JmxSink 可以通过JMX方式访问Mertics信息

名称默认值描述
classorg.apache.spark.metrics.sink.JmxSinkSink类

MetricsServlet

名称默认值描述
classorg.apache.spark.metrics.sink.MetricsServletSink类
pathVARIES*Path prefix from the web server root
samplefalseWhether to show entire set of samples for histograms ('false' or 'true') |

这个在Spark中默认就开启了,我们可以在4040端口页面的URL后面加上/metrics/json查看

GraphiteSink

名称默认值描述
classorg.apache.spark.metrics.sink.GraphiteSinkSink类
hostNONEGraphite服务器主机名
portNONEGraphite服务器端口
period10轮询间隔
unitseconds轮询间隔的单位
prefixEMPTY STRINGPrefix to prepend to metric name

GangliaSink 由于Licene的限制,默认没有放到默认的build里面,如果需要使用,需要自己编译

名称默认值描述
classorg.apache.spark.metrics.sink.GangliaSinkSink类
hostNONEGanglia 服务器的主机名或multicast group
portNONEGanglia服务器的端口
period10轮询间隔
unitseconds轮询间隔的单位
ttl1TTL of messages sent by Ganglia
modemulticastGanglia网络模式('unicast' or 'multicast')

sink配置样例

语法 syntax: [instance].sink.[name].[options]=[value]

 

    *.sink.console.class=org.apache.spark.metrics.sink.ConsoleSink
    *.sink.console.period=10
    *.sink.console.unit=seconds

以上为所有实例开启ConsoleSink,包括master、worker、dirver、executor

 

    master.sink.console.class=org.apache.spark.metrics.sink.ConsoleSink
    master.sink.console.period=10
    master.sink.console.unit=seconds

以上只为master开启ConsoleSink

source配置样例

语法 syntax: [instance].source.[name].[options]=[value]

 

    master.source.jvm.class=org.apache.spark.metrics.source.JvmSource

以上为master开启JvmSource

代码流程

1.各实例master、worker、dirver、executor在启动时创建MetricsSystem实例,在start时调用registerSources()、registerSinks();
2.registerSources中在配置文件中找到对应实例的配置,获取Source的具体包名类名后,通过反射生成实例,再调用registerSource注册到registry中。各source中已定义好要记录的指标,可以继承Source采集自定义信息;
3.registerSinks中同样获取对应实例的配置,得到sink的包名类名反射生成实例,加到sinks列表中。
4.report方法中可调用所有sink的report方法(只在stop中调用)。

参考:

http://spark.apache.org/docs/latest/monitoring.html
http://hao.jobbole.com/metrics/
https://www.jianshu.com/p/e4f70ddbc287
https://www.iteblog.com/archives/1341.html


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sparkmetrics是指在Spark中用于监控和度量系统性能的指标。它是基于Coda Hale Metrics Library的可配置Metrics系统。通过配置文件,我们可以对SparkMetrics系统进行配置,并将Metrics的信息报告到不同的Sink,比如HTTP、JMX以及CSV文件。\[1\] 在Spark的安装包中的conf路径下,有一个metrics.properties文件,Spark在启动时会自动加载该文件。我们可以在该文件中进行Metrics的配置。如果该文件不存在,可以将metrics.properties.template重命名为metrics.properties即可。\[2\] 在Spark源码中,我们经常会看到类似longMetric("numOutputRows")的信息。这些指标的定义通常是在Driver端,而实际的+1或-1操作是在executor进行的。这些指标是通过Spark内部的机制进行传递的,具体的传递方式可以通过分析源码来了解。\[3\] #### 引用[.reference_title] - *1* *2* [Spark Metrics配置详解](https://blog.csdn.net/wuzhongdehua1/article/details/50868574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SPARKmetrics是怎么传递的](https://blog.csdn.net/monkeyboy_tech/article/details/128294869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值