和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配置详解相关推荐

  1. SpringBoot的配置详解application

    SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...

  2. 【深入理解Hadoop原理】Hadoop 参数配置 详解

    Hadoop 参数配置 详解 一.常用端口 组件 节点 默认端口 配置 用途说明 HDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传 ...

  3. jmx_exporter 配置详解

    jmx_exporter 配置详解 才疏学浅,欢迎大家提出意见或问题一起讨论 想要监控Java应用,JMX永远是第一选择.在prometheus监控体系中,jmx_exporter是使用范围十分广的工 ...

  4. Spark RDD 论文详解(五)实现

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  5. elasticsearch-.yml(中文配置详解)

    此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...

  6. (ASA) Cisco Web ××× 配置详解 [三部曲之一]

    (ASA) Cisco Web ××× 配置详解 [三部曲之一] 注意:本文仅对Web×××特性和配置作介绍,不包含SSL ×××配置,SSL ×××配置将在本版的后续文章中进行介绍.   首先,先来 ...

  7. mybatis 同名方法_MyBatis(四):xml配置详解

    目录 1.我们将 数据库的配置语句写在 db.properties 文件中 2.在 mybatis-configuration.xml 中加载db.properties文件并读取 通过源码我们可以分析 ...

  8. logback节点配置详解

    logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...

  9. PM配置详解之一:企业结构

    1.维护计划工厂 功能说明 在公司结构中定义维护工厂(通常已经作为后勤工厂存在)和维护计划工厂(简称计划工厂). 维护工厂:设备所安装的位置,如某机组安装在合营公司,那么合营公司就是此机组的维护工厂, ...

最新文章

  1. tensorflow(4)踩过的一些坑
  2. RESTheart官方文档
  3. NIO 之 Buffer 图解
  4. 初学Linux应掌握的Shell命令
  5. ARM(IMX6U)裸机主频和时钟
  6. 大数据平台的3个核心功能
  7. 渗透测试流程信息收集
  8. NetCore 统一处理 webapi 返回null 转为“”
  9. centos6.5安装mono
  10. 如何新建一个datatable,并往表里赋值
  11. Html5-audio标签简介及手机端不自动播放问题
  12. BeanShell变量和方法的作用域
  13. TextView跑马灯的几点问题:持续动画 和 与EditText争抢焦点的问题
  14. axios中文文档整理
  15. 【转】色品图(chromaticity diagram)
  16. 商学院学习笔记(2)
  17. 解析HTTPS加密原理
  18. springboot搭建支付宝手机网站支付
  19. 华为HCIA-datacom 学习笔记11——AAA原理与配置
  20. 自媒体书单:从入门、写作、策划到运营自媒体必须收藏的系列好书

热门文章

  1. STL之七:STL各种容器的使用时机详解(精讲大全)
  2. QT Creator应用程序开发——01简单按钮显示
  3. java的解释程序_JAVA改错和程序解释
  4. elasticjob已下线_elastic-job详解(二):作业的调度
  5. 部署docker-consul群集,Harbor构建Docker私有仓库
  6. 对爬虫爬取到的数据进行存储
  7. css 缩放_【开发小技巧】06—如何使用CSS在鼠标悬停时缩放图像?
  8. css初始化_CodeMirror项目【在线编辑器】--项目初始化
  9. android webview 数字键盘,android – 在WebView中显示数字键盘
  10. php 匹配正则,php正则匹配类