【发布时间】:2015-03-30 18:51:48
【问题描述】:
我不清楚 spark 分区和 yarn 容器之间的关系。如果我有 3 个节点(--num-executors = 3)和 10 个分区,yarn 是否会创建总共 10 个容器(如果我理解正确,每个容器都是 jvm),并将它们分布在 3 个节点上?资源管理器是否曾经为一个分区启动一个容器,然后为下一个分区重用它?
【问题讨论】:
标签: apache-spark hadoop-yarn partition
我不清楚 spark 分区和 yarn 容器之间的关系。如果我有 3 个节点(--num-executors = 3)和 10 个分区,yarn 是否会创建总共 10 个容器(如果我理解正确,每个容器都是 jvm),并将它们分布在 3 个节点上?资源管理器是否曾经为一个分区启动一个容器,然后为下一个分区重用它?
【问题讨论】:
标签: apache-spark hadoop-yarn partition
来自thisCloudera 发帖:
在 YARN 上运行 Spark 时,每个 Spark 执行器都作为 YARN 容器运行。 MapReduce 为每个任务调度一个容器并启动一个 JVM,而 Spark 在同一个容器中托管多个任务。这种方法可以将任务启动时间缩短几个数量级。
据我了解,YARN 为每个执行程序创建一个容器,然后将其分配给并行或顺序的多个任务。关于您的示例,YARN 将创建总共 3 个容器,为每个容器平均分配 3-4 个任务(每个分区一个)。
很奇怪,您所描述的是 MapReduce 架构的常见行为。
【讨论】: