yarn“fair scheduler”如何使用spark submit配置参数

vmdwslir  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(465)

我有一个关于“公平调度员”的基本问题。根据“公平调度程序”的定义,公平调度是一种将资源分配给应用程序的方法,使得所有应用程序在一段时间内平均获得相等的资源份额。
以下是我的理解和问题。
(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分配一些默认的资源量。
请让我知道,如果任何其他澄清是这个问题需要。谢谢

hpcdzsge

hpcdzsge1#

事实上,公平调度程序比这个复杂得多。在顶层,资源被组织到池/队列中,每个池/队列都有自己的权重和内部调度策略,这不一定公平(如果需要,可以使用fifo调度)。
此外,公平的调度并不意味着提交的应用程序将立即获得所需的资源共享。如果应用程序被提交到一个繁忙的集群,并且请求的资源无法分配,那么它将不得不等待其他应用程序完成,或者使用抢占机制释放资源(如果启用)。
与一起使用的参数 spark-submit 声明运行应用程序所需的资源量。这是问题的“什么”部分
公平调度器的工作是在可能的情况下分配这些资源。它的配置决定了可以分配给队列或应用程序的资源量。这是问题的一部分。
正如您所看到的,这两件事并不是相互排斥的,提交参数是有意义和可接受的。通常请求的资源量不能超过集群上可用的资源量,否则作业将失败。您还应该将其保持在特定队列的资源共享之下。

相关问题