簡體   English   中英

Spark 應用程序 - 高“執行器計算時間”

[英]Spark Application - High "Executor Computing Time"

我有一個現在運行了 46 小時的 Spark 應用程序。 雖然它的大部分工作在 25 秒內完成,但特定工作需要幾個小時。 下面提供了一些詳細信息:

Task Time   Shuffle Read        Shuffle Write
7.5 h       2.2 MB / 257402     2.9 MB / 128601

還有其他類似的任務時間偏離課程,其值為 11.3 小時、10.6 小時、9.4 小時等。它們中的每一個都將大部分活動時間花費在“rdd at DataFrameFunctions.scala:42.”上。 stage 的詳細信息顯示 executor 在“Executor Computing time”上花費的時間。 該執行器運行在 DataNode 1 上,CPU 利用率在 13% 左右非常正常。 其他盒子(另外 4 個工作節點)的 CPU 利用率非常低。

如前所述,當 Shuffle Read 在 5000 條記錄以內時,速度非常快,並在 25 秒內完成。 日志中沒有附加任何內容(spark/hadoop/hbase),在/tmp/var/tmp位置也沒有發現任何內容,這將表明某些與磁盤相關的活動正在進行中。

我對出了什么問題一無所知。 已經為此苦苦掙扎了一段時間。 使用的軟件版本如下:

Hadoop    : 2.7.2
Zookeeper : 3.4.9
Kafka     : 2.11-0.10.1.1
Spark     : 2.1.0
HBase     : 1.2.6
Phoenix   : 4.10.0

spark默認文件上的一些配置。

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://SDCHDPMAST1:8111/data1/spark-event
spark.history.fs.logDirectory    hdfs://SDCHDPMAST1:8111/data1/spark-event
spark.yarn.jars                  hdfs://SDCHDPMAST1:8111/user/appuser/spark/share/lib/*.jar
spark.driver.maxResultSize       5G
spark.deploy.zookeeper.url       SDCZKPSRV01

spark.executor.memory                   12G
spark.driver.memory                     10G
spark.executor.heartbeatInterval        60s
spark.network.timeout                   300s

有什么辦法可以減少花在“執行器計算時間”上的時間?

在特定數據集上執行的作業是有偏差的。 由於偏斜,工作的收入超出了預期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM