当前位置: 首页 > 知识库问答 >
问题:

纱线“公平调度程序”如何使用spark提交配置参数

万俟宜修
2023-03-14

我对YARN“公平调度器”有一个基本问题。根据“公平调度器-公平调度是一种将资源分配给应用程序的方法,以便所有应用程序在一段时间内平均获得相等的资源份额”的定义。

以下是我的理解和问题。

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

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

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

如果在使用spark submit时提到这些conf参数,会发生什么情况?这些参数是否会被接受,资源是否会根据请求分配,或者这些conf参数将被忽略,spark应用程序将根据公平调度按纱线分配一些默认数量的资源。

如果这个问题还需要澄清,请告诉我。谢谢

共有1个答案

乜裕
2023-03-14

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

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

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

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

 类似资料:
  • 我已经配置了一个Hadoop 2.7.4集群,其中有3个工作人员和一个主服务器。我必须在集群上运行多个作业。一项工作需要很多时间来完成,而其他工作是小的。我已经知道公平的时间表最适合我的情况。当我更新yarn-site.xml公平调度器类并重新启动集群时,当我访问http://localhost:8088/cluster(资源管理器web UI)时,会导致以下错误

  • 我有一个从配置文件读取数据的Spark作业。此文件是一个类型安全配置文件。 我要使用的外部application.conf的内容如下所示: 此application.conf文件存在于我的本地计算机文件系统中(而不是HDFS上) 我用的是Spark1.6.1和纱线 提前致谢

  • 一、背景 一般来说,JOB的执行就是FIFO的过程(先进先出),这样的方式资源得不到充分的使用。所以配置了一下公平调度。 二、配置实现 1、环境:hadoop0.20.2 2、拷贝/jz/hadoop-0.20.2/contrib/fairscheduler/hadoop-0.20.2-fairscheduler.jar到hadoop的lib目录下,并复制到集群所有机器上。 3、修改mapred-

  • 在ResourceManager节点上启动flink作业(查找配置文件) 从ResourceManager下载配置文件到本地。 我想,这两种方式都不太好。如何将作业提交到远程纱线集群。有没有合适的办法?

  • 我的理解是,旨在并发运行其参数,并且当协同程序执行等待表达式时,它为事件循环提供了安排其他任务的机会。考虑到这一点,我惊讶地发现下面的代码片段忽略了的一个输入。 据我所知,会发生以下事情: run(main())对事件循环执行任何必要的全局初始化,并安排main()执行。 实际上,这不是我观察到的。相反,整个程序相当于。我发现非常有趣的是,即使是代码的微小变化似乎也会重新引入公平。例如,如果我们有

  • 我可以从IDE(远程)编程运行这个程序吗?我使用Scala-IDE。我寻找一些代码来遵循,但仍然没有找到合适的 我的环境:-Cloudera 5.8.2[OS redhat 7.2,kerberos 5,Spark2.1,scala 2.11]-Windows 7