日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sparklens:Spark应用程序优化工具

發(fā)布時(shí)間:2023/12/3 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sparklens:Spark应用程序优化工具 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Sparklens是帶有內(nèi)置Spark Scheduler模擬器的Spark概要分析工具:它使您更容易理解Spark應(yīng)用程序的可伸縮性限制。 它有助于了解給定Spark應(yīng)用程序使用提供給它的計(jì)算資源的效率。 它已在Qubole實(shí)施并維護(hù)。 它是開源的( Apache License 2.0 ),并已在Scala中實(shí)現(xiàn)。

Sparklens的一個(gè)有趣特征是它具有通過一次運(yùn)行Spark應(yīng)用程序生成估計(jì)的能力。 它報(bào)告信息,例如估計(jì)的完成時(shí)間和使用不同數(shù)量的執(zhí)行者的估計(jì)的群集利用率,作業(yè)/階段時(shí)間線,該時(shí)間線顯示了如何在作業(yè)中安排并行階段以及每階段有趣的指標(biāo)。 有四種使用Sparklens的方法:

  • 現(xiàn)場模式
  • 離線模式
  • 在事件歷史記錄文件上運(yùn)行
  • 筆記本電腦

在這篇文章中,我僅關(guān)注實(shí)時(shí)和離線模式。

現(xiàn)場模式

通過使用以下選項(xiàng),Sparklens可以在應(yīng)用程序執(zhí)行時(shí)運(yùn)行(對(duì)于
火花提交和
火花殼 ):

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

或通過編程方式將Sparklens依賴項(xiàng)添加到Java / Scala項(xiàng)目中(這是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>

然后通過如下配置其偵聽器(對(duì)于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);

或如下(對(duì)于Spark 2.x)

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

離線模式

Sparklens可以稍后運(yùn)行,而不必在執(zhí)行時(shí)運(yùn)行。 可以通過在Spark應(yīng)用程序配置中添加以下屬性來進(jìn)行設(shè)置:

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

在Spark應(yīng)用程序執(zhí)行結(jié)束時(shí),僅生成JSON數(shù)據(jù)文件。 默認(rèn)的保存目錄是/ tmp / sparklens ,但是可以通過以下配置屬性更改目標(biāo):

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

然后,該文件可用于通過以下方式獨(dú)立運(yùn)行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數(shù)據(jù)文件開始,生成的報(bào)告具有與實(shí)時(shí)模式下生成的布局相同且包含相同結(jié)果的報(bào)告。

那個(gè)報(bào)告

這些是最終報(bào)告中可用的信息:

  • 效率統(tǒng)計(jì)信息(驅(qū)動(dòng)程序與執(zhí)行程序時(shí)間,關(guān)鍵和理想應(yīng)用時(shí)間,驅(qū)動(dòng)程序和執(zhí)行程序浪費(fèi)的核心計(jì)算時(shí)間)。
  • 預(yù)測的掛鐘時(shí)間和具有不同執(zhí)行程序計(jì)數(shù)的群集利用率。
  • 每階段指標(biāo)。
  • 隨著時(shí)間的推移,可用的執(zhí)行器和所需的執(zhí)行器。
  • 基于任務(wù)的匯總指標(biāo)。

結(jié)論

我和我的團(tuán)隊(duì)最近開始采用此工具,到目前為止,我們發(fā)現(xiàn)了解其他團(tuán)隊(duì)開發(fā)的Spark應(yīng)用程序的可伸縮性限制確實(shí)很有用,但是需要在我們的基礎(chǔ)架構(gòu)中執(zhí)行。 該工具生成的最終報(bào)告提供了一組全面的信息,這些信息絕對(duì)有助于指出正確的方向,以發(fā)現(xiàn)潛在的可伸縮性問題和需要改進(jìn)的地方。

生成的報(bào)告采用文本格式,其中包含上述所有指標(biāo)和信息。 Qubole提供了 在線服務(wù) ,可從上傳的JSON數(shù)據(jù)文件開始,生成具有交互式圖表和表格的用戶友好且優(yōu)雅的報(bào)告。 無論您是組織機(jī)構(gòu),還是不允許您共享在公司基礎(chǔ)結(jié)構(gòu)中運(yùn)行的Spark應(yīng)用程序上運(yùn)行Sparklens生成的JSON數(shù)據(jù),都需要保留文本報(bào)告。 為了解決此類情況,我正在考慮實(shí)現(xiàn)并發(fā)布一個(gè)開源Java庫,以在本地環(huán)境中從Sparklens JSON數(shù)據(jù)文件或文本報(bào)告開始生成用戶友好的報(bào)告。 請(qǐng)通過評(píng)論此帖子來注冊(cè)您對(duì)此庫的興趣。 謝謝。

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

總結(jié)

以上是生活随笔為你收集整理的Sparklens:Spark应用程序优化工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。