【问题标题】:Difference between executor and container in SparkSpark中执行器和容器的区别
【发布时间】:2019-01-30 06:17:41
【问题描述】:

我试图清楚地了解在纱线管理的集群中内存分配是如何发生的。我知道有一堆执行程序(一个执行程序有自己的 JVM),一个执行程序在执行期间可以有一个或多个 vcore。

我试图在 YARN 配置中将这种理解结合起来,其中事物被隔离为容器。每个容器实际上是一些 Vcor​​e 和一小部分堆内存的混合。

有人可以确认一个执行者是否获得一个容器,或者一个执行者可以拥有多个容器。我在 Cloudera 上阅读了一些关于 YARN 内存管理的文档,似乎是说 Container 分配了一个 Executor。

Cloudera Memory Management

【问题讨论】:

    标签: apache-spark hadoop-yarn


    【解决方案1】:

    Spark Executor 在 Yarn Container 内运行,而不是跨 Containers。

    纱线容器由 YARN 资源管理器按需提供 - 在 Spark 应用程序启动时通过 YARN 动态资源分配。

    一个 Yarn Container 只能有一个 Spark Executor,但可以为 Executor 分配 1 个或更多 Core。

    每个 Spark 执行器和驱动程序都作为其自己的 YARN 容器的一部分运行。

    Executors 在给定的 Worker 上运行。

    此外,一切都在应用程序的上下文中,因此应用程序在许多 Worker 上都有执行器。

    【讨论】:

      【解决方案2】:

      在 YARN 上运行 Spark 时,每个 Spark 执行器都作为 YARN 容器运行。

      【讨论】:

        猜你喜欢
        • 2020-01-12
        • 1970-01-01
        • 1970-01-01
        • 2013-05-13
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        • 2023-03-27
        • 2017-12-16
        相关资源
        最近更新 更多