spark安装_Sparklens:Spark应用程序优化工具

spark安装

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

spark安装

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值