Sparklens:Spark应用程序优化工具

Sparklens是带有内置Spark Scheduler模拟器的Spark概要分析工具:它使您更容易理解Spark应用程序的可伸缩性限制。 它有助于了解给定Spark应用程序使用提供给它的计算资源的效率。 它已在Qubole实施并维护。 它是开源的( Apache License 2.0 ),并已在Scala中实现。

Sparklens的一个有趣特征是它具有通过一次运行Spark应用程序生成估计的能力。 它报告信息,例如估计的完成时间和使用不同数量的执行者的估计的群集利用率,作业/阶段时间线,该时间线显示了如何在作业中安排并行阶段以及每阶段有趣的指标。 有四种使用Sparklens的方法:

  • 现场模式
  • 离线模式
  • 在事件历史记录文件上运行
  • 笔记本电脑

在这篇文章中,我仅关注实时和离线模式。

现场模式

通过使用以下选项,Sparklens可以在应用程序执行时运行(对于
火花提交
火花壳 ):

--packages qubole:sparklens:0.2.1-s_2.11
--conf spark.extraListeners=com.qubole.sparklens.QuboleJobListener

或通过编程方式将Sparklens依赖项添加到Java / Scala项目中(这是Maven的示例):

<repositories><!-- Mandatory: the Sparklens artifact aren't in Maven Central --><repository><id>qubole-maven-repo</id><name>Qubole Maven Repo</name><url>http://dl.bintray.com/spark-packages/maven/</url></repository><repository><id>central</id><name>Maven Repository Switchboard</name><layout>default</layout><url>http://repo1.maven.org/maven2</url><snapshots><enabled>false</enabled></snapshots></repository>
</repositories> 
...
<dependency><groupId>qubole</groupId><artifactId>sparklens</artifactId><version>0.2.1-s_2.11</version>
</dependency>

然后通过如下配置其侦听器(对于Spark 1.X)

SparkConf conf = new SparkConf();
conf.setMaster(master);
conf.setAppName("Spark app name");
conf.set("spark.extraListeners", "com.qubole.sparklens.QuboleJobListener");
JavaSparkContext jsc = new JavaSparkContext(conf);

或如下(对于Spark 2.x)

SparkSession spark = SparkSession.builder().appName("Spark app name").master(master).config("spark.extraListeners", "com.qubole.sparklens.QuboleJobListener").getOrCreate();

离线模式

Sparklens可以稍后运行,而不必在执行时运行。 可以通过在Spark应用程序配置中添加以下属性来进行设置:

conf.set("spark.sparklens.reporting.disabled", "true");

在Spark应用程序执行结束时,仅生成JSON数据文件。 默认的保存目录是/ tmp / sparklens ,但是可以通过以下配置属性更改目标:

conf.set("spark.sparklens.data.dir", "/home/guglielmo/sparklens");

然后,该文件可用于通过以下方式独立运行Sparklens:
spark-submit命令如下:

$SPARK_HOME/bin/spark-submit --packages qubole:sparklens:0.2.1-s_2.11 \--class com.qubole.sparklens.app.ReporterApp qubole-dummy-arg <datafile_path>

上面的命令从JSON数据文件开始,生成的报告具有与实时模式下生成的布局相同且包含相同结果的报告。

那个报告

这些是最终报告中可用的信息:

  • 效率统计信息(驱动程序与执行程序时间,关键和理想应用时间,驱动程序和执行程序浪费的核心计算时间)。
  • 预测的挂钟时间和具有不同执行程序计数的群集利用率。
  • 每阶段指标。
  • 随着时间的推移,可用的执行器和所需的执行器。
  • 基于任务的汇总指标。

结论

我和我的团队最近开始采用此工具,到目前为止,我们发现了解其他团队开发的Spark应用程序的可伸缩性限制确实很有用,但是需要在我们的基础架构中执行。 该工具生成的最终报告提供了一组全面的信息,这些信息绝对有助于指出正确的方向,以发现潜在的可伸缩性问题和需要改进的地方。

生成的报告采用文本格式,其中包含上述所有指标和信息。 Qubole提供了 在线服务 ,可从上传的JSON数据文件开始,生成具有交互式图表和表格的用户友好且优雅的报告。 无论您是组织机构,还是不允许您共享在公司基础结构中运行的Spark应用程序上运行Sparklens生成的JSON数据,都需要保留文本报告。 为了解决此类情况,我正在考虑实现并发布一个开源Java库,以在本地环境中从Sparklens JSON数据文件或文本报告开始生成用户友好的报告。 请通过评论此帖子来注册您对此库的兴趣。 谢谢。

翻译自: https://www.javacodegeeks.com/2019/02/sparklens-tool-spark-applications-optimization.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python打包exe原理_pyinstaller打包python文件成exe(原理.安装.问题)

py文件打包成exe文件的方式一共有三种&#xff1a;py2exe、PyInstaller和cx_Freeze本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件1.PyInstaller 简介2.PyInstaller 安装3.将py文件打包成exe文件4.PyInstaller打包常见问题一. PyInstaller简介1.python相关文件介…

[渝粤教育] 中国地质大学 管理学原理 复习题

《管理学原理》模拟题 一单项选择题 1.管理学既是科学又是(). A.政治 B.实践 C.艺术 D.历史 2.()控制的目的包括防止错误地分配资源. A.规则控制 B.人员控制 C.财务控制 D.结构控制 3.()是组织为达到目标而制定的一种限定活动范围的计划. A.程序 B.方法 C.规划 D.政策 4.()在…

光纤收发器相比其他数据交换器有哪些优势?

在光纤收发器出现以前&#xff0c;网络传输主要是通过光口交换机&#xff0c;但是随着网络通信技术的迅猛发展&#xff0c;人们对网络的使用越来越广泛&#xff0c;网络在地域的覆盖上也越来越大&#xff0c;所以网络的传输速度、传输质量、以及网络传输过程中的保密性等等&…

[渝粤教育] 中国地质大学 自动控制原理 复习题 (2)

《自动控制原理》模拟题 一.单选题 1.当输入为单位斜坡且系统为单位反馈时对于II型系统其稳态误差为() A.0 B.0.1/k C.1/k D.无穷大 2.I型系统开环对数幅频特性的低频段斜率为() A.-40(dB/dec) B.-20(dB/dec) C.0(dB/dec) D.20(dB/dec) 3.当输入为单位斜坡且系统为单位反馈时…

从StreamCorruptedException解析值:无效的流头消息

看到StreamCorruptedException抛出“原因”并指出“ 无效流头 ”&#xff0c;然后提供该无效流头的第一部分是相对常见的情况。 通常&#xff0c;确定异常原因的有用线索是了解无效流头是什么&#xff0c;因为这可以解释意外的原因并引起问题。 StreamCorruptedException只有两…

java 所有子类_java 查找类的所有子类

package _02;import java.io.File;import java.net.URL;public class MainTest_FindAllSubClass {public static void main(String[] args) {Class> clazz MainTest_FindAllSubClass.class;// 定位到当前的包路径// URL url Toy.class.getResource("");// 定位到…

[渝粤教育] 中国地质大学 计算机图形学(新) 复习题

《计算机图形学》模拟题 一单选题 1.枚举出图形中所有点的表示方法是() A.图形 B.图像 C.参数法 D.点阵法 2.下面哪个设备不是计算机图形学的输入设备 A.光笔 B.键盘 C.扫描仪 D.显示器 3.下面哪个设备不是计算机图形学的输出设备 A.激光打印机 B.显示器 C.数据手套 D.喷墨打…

光纤收发器有什么用?光纤收发器的作用是什么?

光纤收发器是光通信系统所必须的一款产品设备&#xff0c;它的主要作用是将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元。那么&#xff0c;光纤收发器有什么用&#xff1f;光纤收发器的作用是什么呢&#xff1f;接下来我们就跟随飞畅科技的小编来一…

[渝粤教育] 中国地质大学 面向对象程序设计 复习题 (2)

《面向对象程序设计》模拟题 一.单选题 1.如果一个类中包含纯虚函数则该类称为(). A.抽象类 B.虚基类 C.派生类 D.子类 2.在类中将show声明为不带返回值的纯虚函数则正确的写法是(). A.virtual void show()0; B.virtual show()0; C.virtual void show(); D.void show()0 virtu…

java如何调用static类_Java中的static的使用指南

一、Java中的static使用之静态变量1.Java 中被static修饰的成员称为静态成员或类成员。它属于整个类所有&#xff0c;而不是某个对象所有&#xff0c;即被类的所有对象所共享、且优先于对象存在。静态成员可以使用类名直接访问&#xff0c;也可以使用对象名进行访问。使用 stat…

如何利用光衰减器测试光纤收发器的灵敏度?

光纤收发器的灵敏度可以说是光纤收发器的一个重要指标&#xff0c;了解如何测试光纤接收器的灵敏度是一项很重要的技能。当光输入功率在一定范围内时&#xff0c;光纤接收器的性能最佳。但是如何来判断光纤收发器是否会在最低光输入功率时&#xff0c;提供最佳性能呢&#xff1…

[渝粤教育] 西南科技大学 数控机床与编程 在线考试复习资料

数控机床与编程——在线考试复习资料 一、单选题 1.非模态代码指令是指( )。 A.一经在一个程序段中指定,直到出现同组的另一个代码时才失效 B.只在写有该代码的程序段中有效 C.不能独立使用的代码 D.有续效作用的代码 2.S1000表示( )。 A.主轴转速 1000mm/min B.主轴转速1000r…

java与lisp_javalisp

当下&#xff0c;包管理工具十分流行&#xff0c;如今不光是开发用的包&#xff0c;就连软件包都有管理器了。下面隆重推荐 Chocolatey &#xff0c;官网跟其他包管理器一样&#xff0c;都推崇使用命令行下面说一下安装方法管理员身份运行 cmdpowershell -NoProfile -Execution…

mapreduce 算法_MapReduce算法–了解数据联接第二部分

mapreduce 算法自从我上一次发布以来已经有一段时间了&#xff0c;就像我上一次大休息一样&#xff0c;我正在Coursera上一些课程。 这次是Scala中的函数式编程 原理和React式编程原理 。 我发现它们都是不错的课程&#xff0c;如果有时间的话&#xff0c;建议您选一门。 在这篇…

[渝粤教育] 西南科技大学 电子信息工程专业导论 在线考试复习资料

电子信息工程专业导论——在线考试复习资料 一、单选题 1.下面是关于计算机中定点数和浮点数的一些叙述,正确的是( ) A.浮点数是既有整数部分又有小数部分的数,定点数只能表示纯小数 B.浮点数的尾数越长,所表示的数的精度就越高 C.定点数可表示的数值范围总是大于浮点数所表示的…

交换机的硬件故障问题总结

交换机故障一般可以分为硬件故障和软件故障两大类。硬件故障主要指交换机电源、背板、模块和端口等部件的故障&#xff0c;具体可以分为以下几类。接下来就由飞畅科技来为大家详细介绍下交换机的硬件故障问题&#xff0c;感兴趣的朋友就一起来看看吧&#xff01; 一、电源故障…

[渝粤教育] 西南科技大学 线性代数 在线考试复习资料

线性代数——在线考试复习资料 一、单选题 1. A. B. C. D. 2.矩阵的特征值为( )。 A. B. C. D. A. B. C. D. A. B. C. D. A.3 B.4 C.1 D.2 A. B. C. D. A.3个方程,5个未知数 B.5个方程,3个未知数 C.5个方程,5个未知数 D.3个方程,3个未知数 A. B. C. D. A. B. C. D. A. B. C. D…

[渝粤教育] 西南科技大学 英语口语 在线考试复习资料

英语口语——在线考试复习资料 一、简答题 1.口语作文(至少200词) Popular Music. 2.口语复杂问答(每题至少50词) What do you do in your spare time? 3.口语复杂问答(每题至少50词) What characteristics do you think a good teacher should have? 4.口语复杂问答(每…

Spring Data Redis:Sentinel的高可用性

1.概述 为了使Redis具有高可用性&#xff0c;我们可以使用Spring Data Redis对Redis Sentinel的支持。 借助Sentinel&#xff0c;我们可以创建自动抵御某些故障的Redis部署。 Redis Sentinel还提供其他附带任务&#xff0c;例如监视&#xff0c;通知&#xff0c;并充当客户端的…

关于交换机和路由器的区别介绍

交换机&#xff08;又名交换式集线器&#xff09;&#xff0c;是一种用于电&#xff08;光&#xff09;信号转发的网络设备&#xff0c;它可以为接入交换机的任意两个网络节点提供独享的电信号通路。交换机的作用可以理解为将一些机器连接起来组成一个局域网。而路由器与交换机…