我有一个运行在YARN群集上的Spark批处理应用程序(在AWS EMR中)。当我从S3读取应用程序的输入并将输出也写入S3时,该应用程序会花费很多时间(将近6分钟)。我猜想这是由于读写S3时的延迟问题引起的。为了证明我的猜测是正确的,我进入了火花事件的时间轴,以了解需要花费时间。这是时间表:
我的保存功能后有巨大的空白。我看到保存功能在大约10-15秒内完成执行。 它实际上已经完成运行并且执行程序处于空闲状态吗?
为了改善应用程序的运行时间,我做了一个实验。我使用HDFS而不是S3。我从HDFS读取应用程序的输入,并将输出也写入HDFS。该应用仅花费了1.5分钟。在这种情况下,火花事件时间轴如下所示: 空格消失了。