Spark Metrics配置详解
和Hadoop类似,在 Spark中也存在很多的Metrics配置相关的参数,它是基于Coda Hale Metrics Library的可配置Metrics系统,我们可以通过配置文件进行配置,通过 Spark的Metrics系统,我们可以把 Spark Metrics的信息报告到各种各样的Sink,比如HTTP、JMX以及CSV文件。
Spark的Metrics系统目前支持以下的实例:
(1)、master:Spark standalone模式的master进程;
(2)、worker:Spark standalone模式的worker进程;
(3)、executor:Spark executor;
(4)、driver:Spark driver进程;
(5)、applications:master进程里的一个组件,为各种应用作汇报。
在Spark的Metrics系统主要支持Sink和Source两种,其中,Sink指定metrics信息发送到哪里,每个instance可以设置一个或多个Sink(这点和Flume很类似)。Sink的源码位于org.apache.spark.metrics.sink
包中;而Source也是指信息的来源,它主要分为两大类:
(1)、Spark内部source,比如MasterSource、WorkerSource等,它们会接收Spark组件的内部状态;
(2)、通用source,如:JvmSource,它收集低级别的状态。
文章目录
- 1 支持的Sink类别
- 1.1 ConsoleSink
- 1.2 CSVSink
- 1.3 JmxSink
- 1.4 MetricsServlet
- 1.5 GraphiteSink
- 1.6 GangliaSink
- 2 如何使用
- 2.1 实例
支持的Sink类别
ConsoleSink
ConsoleSink是记录Metrics信息到Console中。
名称 | 默认值 | 描述 |
---|---|---|
class | org.apache.spark.metrics.sink.ConsoleSink | Sink类 |
period | 10 | 轮询间隔 |
unit | seconds | 轮询间隔的单位 |
CSVSink
定期的把Metrics信息导出到CSV文件中。
名称 | 默认值 | 描述 |
---|---|---|
class | org.apache.spark.metrics.sink.CsvSink | Sink类 |
period | 10 | 轮询间隔 |
unit | seconds | 轮询间隔的单位 |
directory | /tmp | CSV文件存储的位置 |
JmxSink
可以通过JMX方式访问Mertics信息
名称 | 默认值 | 描述 |
---|---|---|
class | org.apache.spark.metrics.sink.JmxSink | Sink类 |
MetricsServlet
名称 | 默认值 | 描述 |
---|---|---|
class | org.apache.spark.metrics.sink.MetricsServlet | Sink类 |
path | VARIES* | Path prefix from the web server root |
sample | false | Whether to show entire set of samples for histograms ('false' or 'true') | |
这个在Spark中默认就开启了,我们可以在4040端口页面的URL后面加上/metrics/json
查看
GraphiteSink
名称 | 默认值 | 描述 |
---|---|---|
class | org.apache.spark.metrics.sink.GraphiteSink | Sink类 |
host | NONE | Graphite服务器主机名 |
port | NONE | Graphite服务器端口 |
period | 10 | 轮询间隔 |
unit | seconds | 轮询间隔的单位 |
prefix | EMPTY STRING | Prefix to prepend to metric name |
GangliaSink
由于Licene的限制,默认没有放到默认的build里面,如果需要使用,需要自己编译(这个会在后面专门介绍)
名称 | 默认值 | 描述 |
---|---|---|
class | org.apache.spark.metrics.sink.GangliaSink | Sink类 |
host | NONE | Ganglia 服务器的主机名或multicast group |
port | NONE | Ganglia服务器的端口 |
period | 10 | 轮询间隔 |
unit | seconds | 轮询间隔的单位 |
ttl | 1 | TTL of messages sent by Ganglia |
mode | multicast | Ganglia网络模式('unicast' or 'multicast') |
如何使用
在Spark安装包的$SPARK_HOME/conf
路径下有个metrics.properties
文件(如果不存在,请将metrics.properties.template
重命名为metrics.properties
即可),Spark启动的时候会自动加载它。
当然,如果想修改配置文件位置,我们可以使用-Dspark.metrics.conf=xxx
进行修改。
实例
下面我将简单地介绍如何使用Spark Metrics。我只想简单地开启ConsoleSink,我们可以如下配置:
*.sink.console.class=org.apache.spark.metrics.sink.ConsoleSink
*.sink.console.period=10
*.sink.console.unit=seconds
period是ConsoleSink的轮询周期,unit是ConsoleSink的轮询周期时间单位。上面是配置所有的实例,如果想单独配置可以如下:
master.sink.console.class=org.apache.spark.metrics.sink.ConsoleSink
master.sink.console.period=15
master.sink.console.unit=seconds
|
这个配置可以覆盖通用配置符(也就是上面的*号)
我们为master、worker、driver和executor开启jvm source,如下:
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
当然,我们还可以自定义Source,这个需要继承自org.apache.spark.metrics.source.Source类。关于如何自定义Source,我这里不介绍了,需要的同学可以去参照Spark源码,比如JvmSource类的实现。
Spark Metrics配置详解相关推荐
- SpringBoot的配置详解application
SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...
- 【深入理解Hadoop原理】Hadoop 参数配置 详解
Hadoop 参数配置 详解 一.常用端口 组件 节点 默认端口 配置 用途说明 HDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传 ...
- jmx_exporter 配置详解
jmx_exporter 配置详解 才疏学浅,欢迎大家提出意见或问题一起讨论 想要监控Java应用,JMX永远是第一选择.在prometheus监控体系中,jmx_exporter是使用范围十分广的工 ...
- Spark RDD 论文详解(五)实现
前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...
- elasticsearch-.yml(中文配置详解)
此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...
- (ASA) Cisco Web ××× 配置详解 [三部曲之一]
(ASA) Cisco Web ××× 配置详解 [三部曲之一] 注意:本文仅对Web×××特性和配置作介绍,不包含SSL ×××配置,SSL ×××配置将在本版的后续文章中进行介绍. 首先,先来 ...
- mybatis 同名方法_MyBatis(四):xml配置详解
目录 1.我们将 数据库的配置语句写在 db.properties 文件中 2.在 mybatis-configuration.xml 中加载db.properties文件并读取 通过源码我们可以分析 ...
- logback节点配置详解
logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...
- PM配置详解之一:企业结构
1.维护计划工厂 功能说明 在公司结构中定义维护工厂(通常已经作为后勤工厂存在)和维护计划工厂(简称计划工厂). 维护工厂:设备所安装的位置,如某机组安装在合营公司,那么合营公司就是此机组的维护工厂, ...
最新文章
- tensorflow(4)踩过的一些坑
- RESTheart官方文档
- NIO 之 Buffer 图解
- 初学Linux应掌握的Shell命令
- ARM(IMX6U)裸机主频和时钟
- 大数据平台的3个核心功能
- 渗透测试流程信息收集
- NetCore 统一处理 webapi 返回null 转为“”
- centos6.5安装mono
- 如何新建一个datatable,并往表里赋值
- Html5-audio标签简介及手机端不自动播放问题
- BeanShell变量和方法的作用域
- TextView跑马灯的几点问题:持续动画 和 与EditText争抢焦点的问题
- axios中文文档整理
- 【转】色品图(chromaticity diagram)
- 商学院学习笔记(2)
- 解析HTTPS加密原理
- springboot搭建支付宝手机网站支付
- 华为HCIA-datacom 学习笔记11——AAA原理与配置
- 自媒体书单:从入门、写作、策划到运营自媒体必须收藏的系列好书
热门文章
- STL之七:STL各种容器的使用时机详解(精讲大全)
- QT Creator应用程序开发——01简单按钮显示
- java的解释程序_JAVA改错和程序解释
- elasticjob已下线_elastic-job详解(二):作业的调度
- 部署docker-consul群集,Harbor构建Docker私有仓库
- 对爬虫爬取到的数据进行存储
- css 缩放_【开发小技巧】06—如何使用CSS在鼠标悬停时缩放图像?
- css初始化_CodeMirror项目【在线编辑器】--项目初始化
- android webview 数字键盘,android – 在WebView中显示数字键盘
- php 匹配正则,php正则匹配类