我有一个Spark应用程序,现在运行了46个小时。虽然大多数工作在25秒内完成,但特定工作需要数小时。下面提供了一些细节:
COM
还有其他类似的任务时间,其中值为11.3小时,10.6小时,9.4小时等。每个人都将大部分活动时间用于“在DataFrameFunctions.scala:42的rdd”。阶段的细节显示执行者花费在“执行者计算时间”上的时间。此执行程序在DataNode 1上运行,其中CPU利用率非常正常,约为13%。其他盒子(另外4个工作节点)具有非常标称的CPU利用率。
当Shuffle Read在5000条记录内时,这非常快,并且如前所述在25秒内完成。没有任何内容附加到日志(spark / hadoop / hbase),在Task Time Shuffle Read Shuffle Write
7.5 h 2.2 MB / 257402 2.9 MB / 128601
或/tmp
位置都没有注意到任何内容,这表明某些磁盘相关活动正在进行中。
我对出了什么问题一无所知。很长一段时间以来一直在努力解决这个问题。使用的软件版本如下:
/var/tmp
spark默认文件中的一些配置。
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
有什么办法可以减少“执行计算时间”所花费的时间吗?