使用度量和监视Apache火花3 Kubernetes插件

2021年5月26日,12:05点(PT)

下载幻灯片

Apache引发的这次演讲将介绍一些实用的方面监控,重点测量Apache火花在云环境中运行,并旨在使Apache引发用户数据驱动的故障诊断性能。Apache火花指标允许提取重要信息在Apache引发的内部执行。另外,Apache火花3引入了一种改进的插件接口扩展指标收集第三方api。这是特别有用的云环境上运行Apache火花时,因为它允许测量操作系统和容器,如CPU使用率、I / O、内存使用情况,网络吞吐量,并测量相关指标云文件系统访问。参与者将学习如何利用这种类型的仪器来构建和运行一个Apache火花性能仪表板,它补充了现有火花WebUI先进的监控和故障诊断性能。

在这个会话表:
卢卡Canali、数据工程师,欧洲核子研究中心

成绩单

卢卡Canali:你好,欢迎光临。我的名字是卢卡Canali和我今天的演讲是关于监视Apache火花3。x Kubernetes,利用指标和插件。我在欧洲核子研究中心作为一个数据工程师提供数据分析和数据库服务。我热爱测量方法和工具和提高性能的数据平台。bob体育客户端下载今天我们将介绍Apache火花监测生态系统,引发指标系统,引发3插件,指标对Kubernetes火花和云存储,您将看到如何运行一个火花仪表板性能。引发用户,我们关心大规模集群的性能。良好的性能的关键是运行良好的执行计划,并确保移除序列化点和瓶颈。要做到这一点,我们需要仪表,数据和工具,允许调查工作负载中,找到瓶颈。
Apache火花监测生态系统。让我们快速回顾一下。web UI是第一个入口点进入火花仪表与细节工作,阶段,任务,SQL,流媒体,等等。REST API和编程火花侦听器API公开任务指标和执行人指标,这对解决也是非常有用的。
还有火花度量系统仪器我们将在接下来的谈话中使用。司机发出火花指标,执行器和其他组件配置下沉。有几个水槽可用,我们将会看到。指标是多种多样的。它们覆盖许多火花执行相关细节。例如,活动任务的数量、就业和阶段完成,失败,遗嘱执行人CPU、运行时,垃圾收集,洗牌指标、I / O指标,和记忆指标。
如果你想探索引发公制,您可以使用Servlet WebUI下沉。指标以JSON格式是可用的,和本地模式下运行时尤其有用。这也有实验对普罗米修斯的支持。JmxSink允许更大的灵活性。例如,您可以探索使用JConsole JMX和使用老工具指标。
在这个文档的其余部分,我们将讨论火花度量系统上下文中的火花监测管道。这张幻灯片提供了体系结构概述。火花司机和执行人收集他们的工作量指标和下沉到石墨端点InfluxDB实例。然后指标可视化使用自定义读取InfluxDB Grafana仪表板。
这是如何配置指标体系陷入石墨端点。只需编辑指标属性文件。有一种替代方法,您可以使用spark.metrics。conf参数作为这张幻灯片中突出显示。
构建仪表盘的关键优势之一,是想象的可能性度量作为时间的函数。这张幻灯片显示了两个特殊的重要指标。活动任务的数量是非常有用的,因为它显示出火花能够麻痹的工作负载,并突出显示区域当这件事没有发生,可能是因为长尾的流浪汉,分区队列,分区不足,和其他几个原因。CPU使用率由执行者也是非常重要的,了解工作负载是利用底层平台。bob体育客户端下载
引发广泛应用在云环境中。需要改进的仪器在这种情况下。而不是添加此仪器为核心火花,火花3与火花插件接口提供了新的机遇。在这次演讲中,我们讨论塞内指标,对于Kubernetes火花,你可以测量豆荚资源使用,也为云文件系统插件工具。
这张幻灯片的上下文中概述了火花插件扩展的度量。插件允许用户运行代码的执行人。插件代码可以与外部包,并注册指标会流到水槽与其余的火花指标。这有效地扩展了引发公制。
这是引发插件API是如何工作的。您可以创建自定义类扩展SparkPlugin,并使用从PluginContext metricRegistry,注册感兴趣的指标。在这个例子中,一个非常基本的,插件度量报告是恒定值。如果你想尝试引发插件,你可能想要去这张幻灯片所示的库在这两种基本插件的例子。要做到这一点,你只需要添加一个包和一个配置参数。这是一个更有趣的例子插件运行时,您可能会发现有用Kubernetes火花。插件从CGroup仪器读取负载数据,与pod资源使用和满足指标。这是在这张幻灯片如何使用它。
报告度量这个插件是CPU、内存和网络I / O。测量CPU使用这种方法是有用的,因为它给CPU使用的JVM上的信息,可能还有其他组件中运行的豆荚。例如,Python UDF,当使用PySpark。网络吞吐量指标也很有用,因为他们提供信息在远程I / O和转移工作负载。另一个插件,您可能会发现有用的允许测量如S3云文件系统或任何其他Hadoop文件系统兼容。bytesWritten,量度报告是bytesRead readOps writeOps。这是如何配置插件。
有说有一点复杂的设置火花仪表板的基础设施。这张幻灯片中提到的库提供了代码和示例,您可以使用它们来开始。您可以运行仪表在集装箱码头工人,负责配置InfluxDB,伴随着预构建Grafana仪表板。你也可以找到在这个库细节如何安装仪表板使用舵图表。
这是一个翻新的火花插件所提供的工具仪器Kubernetes和云文件系统。有一个包,您可以使用,你需要设置的配置,如果你想使用这些插件。在这张幻灯片中,您可以看到如何把所有这一切放在一起。在一个示例中,您可以运行的集装箱码头工人的基础设施,然后您可以运行你的火花壳,火花峰会,或PySpark额外的仪器将显示在仪表板。
指示板可以存储到InfluxDB可视化火花指标。它可用于实时监测,或者探索历史数据。的指标有很多,只有几所示提供的仪表板。指标可以看出,总结指标在时间间隔,和其他图形代表指标作为时间的函数。这个练习的最终目标是饲料监测数据性能故障诊断和根本原因分析。附加配置是关于仪表板注释。注释允许连接数据对工作开始和结束时间的ID, ID和SQL ID状态图的仪表板。这是如何配置它。现在,一个简短的演示的引发性能指示板。
这个演示展示如何运行性能仪表板为Apache火花。我们将使用可用的工具和指导,在存储库的视频所示。首先,一个快速回顾架构。火花驱动器和一个执行者的收集工作负载指标和发送到石墨端点InfluxDB实例。指标可视化使用读取InfluxDB Grafana仪表板。仪表板基础设施组件,即InfluxDB Grafana,我们正在运行一个码头工人的容器,你可以开始,在下面进行了突出显示。我添加了额外的配置用于火花工作(听不清)何时以及如何配置同步指标。你可以看到突出显示的配置,为适应还增加了额外的配置,为查询,工作,和舞台,结束和开始时间。
我用的插件库所示延长火花仪表Kubernetes和Cloud5系统的指标。火花插件需要额外的配置,如图所示在存储库中。在这里你可以看到一个仪表板提供。在后台,火花(听不清)与12处决Kubernetes集群运行的TPC基准规模,1500年。使用下拉选择您希望监视的用户和应用程序ID。在这个演示中,您将看到一个实时数据刷新每10秒。控制右上角的仪表板允许您更改的时间间隔和刷新率。
第一组我们想看仪表,显示累积值感兴趣的指标,例如任务运行时,CPU使用率,垃圾收集,指标任务和工作细节,内存使用情况的指标,指标的IO。这种情况显示了活动任务的数量是在当前时刻。有一些度量值作为时间的函数是有用的了解工作负载的发展。活动任务的数量是特别重要的,因为它展示了如何引发能够麻痹的工作负载,并允许时间,当这不会发生,这可能是由于长期执行反面,流浪者,(听不清)分区,分区队列,等等,关闭。正如你所看到的,当我把它的图表,度量值/执行器的细节。CPU使用率也非常重要,了解工作负载的发展。垃圾收集。这个图表总结了如何执行程序任务运行时分解CPU使用率,习惯收集、序列化,也需要时间,(听不清)和其他组件。
我们这里有关于内存使用指标。你可以看到JVM堆内存,然后统一内存中火花,相撞在遗嘱执行人,执行,和存储记忆。这里有司机的记忆。然后你有度量引发IO, HDFS IO,洗牌IO。额外的指标是非常有用的用于运行在Kubernetes火花,(听不清)与CGroups插件工具。这个图表显示了CPU的使用,直接从测量部分。在这里你会看到火花,以防我们所使用的CPU使用PySpark,也会显示在这里。然后是度量网络进入豆荚。这包括IO读取我们正在做,还到洗牌。你可以在这里看到。 This is a network bytes that go out, also contains parts of the shuffle and data transfer towards the driver from the executors. And we have metrics for memory. An additional set of metrics are about the cloud storage. You start using, for example, S3 or any other compatible file system, you can measure here throughput in terms of bytes ran and written, and read and write operations.
我想给你一个额外的工具,与注释。在这里我们可以看到当查询开始。例如,最后间隔15分钟,最后广场在99年开始和我们测量的是广场。所以我们可以去查询的web UI看看细节99。这是(听不清)。这使仪表板之间的联系仪器和标准的web UI工具。这结束了我们的火花仪表板的短途旅行。我希望你觉得这有用,我祝你好运与你的火花故障诊断性能。
我希望你喜欢这个演示。这是一个高级主题。我喜欢提到引发插件,公制,允许自定义代码库工具。作为一个例子,这个幻灯片细节如何检测率S3, HDFS,某些统一的系统,为基准,我们通过这五个系统。为此,我们使用火花插件和公制的基础设施,和一些自定义代码。你可以找到这张幻灯片中的链接。
我们之前的结论。我想分享一些经验教训,开发和运行这些类型的基础设施了几年。我们做的一件事是我们提供火花仪表板,欧洲核子研究中心的一个可选的配置Jupyter-based数据分析平台。bob体育客户端下载用户可以选择这些类型的设备如果他们想。这也不错的工作,很好,但是有说有一个认知负荷了解可用的指标和故障排除过程。在实践中,用户与专家一起做这种类型的故障排除,或火花的服务。一个额外的技术角度,我们说,数据保留。
总的来说,我们要注意不要超载InfluxDB太多数据。另一点我想提出的是火花开发。这个基础设施,例如,在更多的事情可以做。这还不是一个完整的工作。本机InfluxDB水槽将非常有用目前我们使用的是石墨水槽,和InfluxDB 1. x。你可以把它捡起来,但是它会很高兴有一个本地水槽或者普罗米修斯水槽。同时,火花不能完全检测。一些尚未覆盖的区域。例如,仪表的I / O和Python UDL运行时。
这让我对我们的结论。火花度量和仪表板提供广泛的性能监控数据。他们是一个不错的赞美时Web UI做故障诊断性能。火花插件,引入火花3.0,可以很容易增加引发公制。例如,我们已经看到在这个演示插件监控火花Kubernetes和云文件系统上使用。
你可以开始构建和使用仪表板基于InfluxDB和Grafana火花性能,所示的工具,这个演讲和演示。我希望这也激励你构建你自己的插件和仪表板,并分享你的经验。我要感谢所有的人,让这项工作成为可能。我也把一些链接在这张幻灯片,我想谢谢你们所有人的关注。

卢卡Canali

卢卡与Hadoop数据工程师在CERN,火花,流和数据库服务。卢卡有20多年的经验设计、部署和支持企业级数据库和数据……
阅读更多