【问题标题】:how does YARN "Fair Scheduler" work with spark-submit configuration parameterYARN“公平调度程序”如何与 spark-submit 配置参数一起工作
【发布时间】:2017-07-25 07:59:23
【问题描述】:

我有一个关于 YARN “Fair Scheduler”的基本问题。根据the definition 的“公平调度器-公平调度是一种将资源分配给应用程序的方法,以便所有应用程序平均随着时间的推移获得同等份额的资源”。

以下是我的理解和问题。

(1) 如果在 YARN 上运行多个应用程序,那么它将确保所有应用程序在一段时间内获得或多或少相等的资源份额。

(2) 我的问题是,如果在 YARN 中这个属性设置为 true,那么如果我们在提交 spark-submit 时使用以下配置有什么不同吗?

   (i)   driver-memory
   (ii)  executor-memory
   (iii) num-executors
   (iv)  executor-cores

如果我在使用 spark-submit 时提到这些 conf 参数会怎样?是否会接受这些参数并根据请求分配资源,或者这些 conf 参数将被忽略,并且 Spark 应用程序将根据公平调度由 YARN 分配一些默认数量的资源。

如果需要对此问题进行任何其他说明,请告诉我。谢谢

【问题讨论】:

    标签: hadoop apache-spark hadoop-yarn


    【解决方案1】:

    实际上,公平调度器比这更复杂。在顶层资源被组织成池/队列,每个池/队列都可以有自己的权重和内部调度策略,而不是necessarily fair(如果需要,可以使用 FIFO 调度)。

    此外,公平调度并不意味着提交的申请将立即获得所需的资源共享。如果应用程序被提交到繁忙的集群并且无法分配请求的资源,它将不得不等到其他应用程序完成,或者使用抢占机制(如果启用)释放资源。

    • spark-submit 一起使用的参数声明了运行应用程序所需的资源量。这个“what”是问题的一部分
    • 公平调度程序的工作是尽可能分配这些资源。它的配置决定了可以分配给队列或应用程序的资源量。这个“如何”是问题的一部分。

    如您所见,这两件事并不相互排斥,提交参数是有意义的并且被接受的。像往常一样,请求的资源量不得超过集群上可用的资源量,否则作业将失败。您还应该将其保持在特定队列的资源共享之下。

    【讨论】:

    • 如何向特定池提交火花?
    • 在 YARN 上? spark.yarn.queue 如果我没记错的话。对于内部 Spark 调度器spark.scheduler.pool
    猜你喜欢
    • 2018-09-08
    • 2017-01-27
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多