0

我有一个在 YARN 集群(在 AWS EMR 中)上运行的 Spark 批处理应用程序。当我从 S3 读取应用程序的输入并将输出也写入 S3 时,应用程序需要很长时间(将近 6 分钟)。我猜这是因为读取和写入 S3 时的延迟问题。为了证明我的猜测是正确的,我去我的火花事件时间线看看什么需要时间。这是时间线:

在此处输入图像描述 我的保存功能后有巨大的空白。我看到保存功能在大约 10-15 秒内完成执行。它真的完成运行并且执行器处于空闲状态吗?

为了提高我的应用程序的运行时间,我做了一个实验。我使用 HDFS 而不是 S3。我从 HDFS 读取应用程序的输入并将输出也写入 HDFS。申请只用了 1.5 分钟。本例中的火花事件时间线如下所示: 在此处输入图像描述 空白已消失。

  1. 我之前的活动时间线中的空白区域是什么?
  2. 为什么有些作业(即事件时间轴中的蓝色框)垂直均匀分布?
  3. 为什么 foreach() 作业和 save() 作业没有垂直分散?
  4. 职位垂直分散是什么意思?
4

0 回答 0