我的理解是对的吗?
应用:一个火花提交.
工作:一旦懒惰的评估发生,就有工作.
阶段:它与shuffle和转换类型有关.我很难理解舞台的边界.
任务:单元操作.每项任务一次转型.每次转换一项任务.
帮助想要提高这种理解.
rak*_*esh 27
主要功能是应用程序.
在RDD上调用操作时,会创建"作业".工作是提交给Spark的工作.
根据随机边界将作业划分为"阶段".这可以帮助您理解.
每个阶段根据RDD中的分区数进一步划分为任务.因此任务是Spark最小的工作单元.
ven*_*nus 13
应用程序- 使用其 API 在 Spark 上构建的用户程序。它由集群上的驱动程序和执行程序组成。
作业- 由多个任务组成的并行计算,这些任务响应 Spark 操作(例如,save()、collect())而产生。在与 Spark shell 的交互会话期间,驱动程序将您的 Spark 应用程序转换为一个或多个 Spark 作业。然后它将每个作业转换为 DAG。这实质上是 Spark 的执行计划,其中 DAG 中的每个节点可以是单个或多个 Spark 阶段。
阶段- 每个工作都被分成更小的任务集,称为阶段,这些任务相互依赖。作为 DAG 节点的一部分,阶段是根据可以串行或并行执行的操作创建的。并非所有 Spark 操作都可以在单个阶段中发生,因此它们可能会分为多个阶段。通常阶段是在算子的计算边界上划定的,它们决定了 Spark 执行器之间的数据传输。
任务- 将发送到 Spark 执行器的单个工作或执行单元。每个阶段由 Spark 任务(一个执行单元)组成,然后在每个 Spark 执行器之间进行联合;每个任务都映射到单个核心并处理单个数据分区。因此,一个 16 核的 executor 可以有 16 个或更多的任务并行工作在 16 个或更多的分区上,使得 Spark 的任务执行非常并行!

免责声明:内容复制自:Learning Spark
Rag*_*ags 10
我在Cloudera 文档中找到了一个非常好的定义。这就是重点。
在 MapReduce 中,最高级别的计算单元是作业。作业加载数据、应用映射函数、对其进行混洗、应用归约函数,并将数据写回持久存储。但在 Spark 中,最高级别的计算单元是应用程序。Spark 应用程序可用于单个批处理作业、具有多个作业的交互式会话或持续满足请求的长期服务器。Spark 作业不仅仅包含单个映射和化简。
从 7-steps-for-a-developer-to-learn-apache-spark
Spark 应用程序的剖析通常由 Spark 操作组成,这些操作可以是使用 Spark 的 RDD、DataFrame 或 Datasets API 对数据集进行的转换或操作。例如,在您的 Spark 应用程序中,如果您在 DataFrame 或 Dataset 上调用一个操作,例如 collect() 或 take(),该操作将创建一个作业。然后将作业分解为单个或多个阶段;阶段被进一步划分为单独的任务;和任务是 Spark 驱动程序的调度程序发送到 Spark 工作节点上的 Spark Executor 以在您的集群中执行的执行单元。通常,多个任务会在同一个执行器上并行运行,每个任务都在其内存中处理其分区数据集单元。
在 Spark 中,当调用 Spark-Submit 时,用户代码被分为称为作业、阶段和任务的小部分。
作业 - 作业是一系列阶段,由 .count()、foreachRdd()、collect()、read() 或 write() 等操作触发。
阶段 阶段是一系列任务,它们可以一起并行运行,无需随机播放。例如,使用 .read 从磁盘读取文件,然后运行 .map 和 .filter 都可以在不进行洗牌的情况下完成,因此它可以适合单个阶段。
任务 任务是应用于单个分区的单个操作(.map 或.filter)。每个任务都作为执行器中的单个线程执行。如果您的数据集有 2 个分区,则诸如 filter() 之类的操作将触发 2 个任务,每个分区一个。即任务在执行器上执行,其数量取决于分区的数量。1 个分区需要 1 个任务。
| 归档时间: |
|
| 查看次数: |
8248 次 |
| 最近记录: |