spark 3.x Plugin Framework

简介: spark 3.x Plugin Framework

背景


该文基于spark 3.0.1

spark 3.0引入了一个新的插件框架,其实这个插件在spark 2.x就已经存在了,只不过spark 3.0对该插件进行了重构。因为在之前该插件是不支持driver端的,具体可以见SPARK-29396。至于为什么引入这么一个插件 是为了更好的监控和定制一些指标,以便更好的进行spark调优。


插件功能


支持自定义的指标

用户可以写代码进行自定义指标的编写,而这些指标和spark的指标结合, 这样就能通过sinks进行收集,具体参见metrics


executor和driver可以定制listener发送事件

因为在driverPluginContainer 中我们可以获取到sparkcontext,从而可以注册对应的listener进行处理。

而在executor端,ExecutorPluginContainer中我们可以实现TaskCompletionListener和TaskFailureListener接口,通过TaskContext.get 注册对应的回调


executor 插件和 driver插件可以通过RPC进行交互


源码实现


关于源码实现其实还是比较好理解的,自行参考源码PluginContainer,SparkPlugin,DriverPluginContainer,ExecutorPluginContainer


Demo


SparkPlugins

该例子自定义了操作系统级别的指标以及HDFS级别的metrics等

spark-memory

注意该实现是基于spark 2.x的,但是我们可以基于此进行改造能够集成到spark 3.x中,但是在spark 3.x中,spark.metrics.executorMetricsSource.enabled默认为true,也就是该spark-memory暴露出来的指标已经集成到了spark中了,在此可以作为一个参考。

参考


spark-plugin

spark-internals


相关文章
|
SQL 存储 人工智能
ISO 专家解读 | 什么是 GQL 国际标准图查询语言
4 月 12 日,图查询标准语言 GQL(Graph Query Language)正式发布。与此同时,悦数图数据库 v5.0 宣布原生支持 GQL。GQL 一经问世,便在图行业内外引起广泛关注, ISO 数据库语言项目召集人 Keith W. Hare 发布了一篇对 GQL 的解读文章。让我们跟随专家的视角,来了解一下什么是 GQL,以及 GQL 数据库语言的功能。
|
监控 Java API
Spring Cloud 2021.0.1 实践 Resilience4J
Spring Cloud CircuitBreaker 提供了跨不同断路器实现的抽象。它提供了在您的应用程序中使用的一致 API,让您(开发人员)选择最适合您的应用程序需求的断路器实现。
2078 0
Spring Cloud 2021.0.1 实践 Resilience4J
|
计算机视觉
OpenCV3 和 Qt5 计算机视觉:1~5
OpenCV3 和 Qt5 计算机视觉:1~5
569 0
|
测试技术 开发工具 git
面向 C++ 的现代 CMake 教程(三)(3)
面向 C++ 的现代 CMake 教程(三)
919 0
|
安全 数据中心 C++
|
域名解析 网络协议 Unix
DDNS 简介
一、概念DDNS(Dynamic Domain Name Server)是动态域名服务的缩写!DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传 递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务项目器程序负责提供DNS服务并实现动态域名解析。
18328 0
|
数据库连接 Python
Flask 框架入门与实践:构建你的第一个 Web 应用
【5月更文挑战第18天】本文介绍了使用 Flask 框架构建第一个 Web 应用的步骤。首先通过 `pip install Flask` 安装框架,然后编写基本的 Python 代码创建应用,包括定义路由和响应。示例展示如何显示 "Hello, World!",并扩展到显示用户信息的功能。利用模板(如 `index.html`)可使页面更丰富。随着学习深入,可以利用 Flask 的更多特性,如表单处理和数据库连接,来构建更复杂的 Web 应用。本文旨在激发读者对 Flask 和 Web 开发的兴趣,鼓励不断探索和实践。
514 7
|
算法 数据可视化 Python
【KMeans】Python实现KMeans算法及其可视化
【KMeans】Python实现KMeans算法及其可视化
|
搜索推荐 定位技术
免费、无版权约束、可商用的优质图片素材网站合集
免费、无版权约束、可商用的优质图片素材网站合集
942 1
|
消息中间件
【图解RabbitMQ-6】说说交换机在RabbitMQ中的四种类型以及使用场景
【图解RabbitMQ-6】说说交换机在RabbitMQ中的四种类型以及使用场景
810 1

热门文章

最新文章