繁体   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