YARN 设置中的应用程序管理器
Application manager in YARN setup
我设置了 1 个名称节点、2 个数据节点、1 个资源管理器和 2 个节点 Managers.All 组件是 运行 作为 docker 容器。
每次当我从 2 台机器(2 个客户端)执行 spark 提交(yarn 集群模式)时,作业都会按顺序完成。 Job1 和 Job2 都进入 Accepted 状态,Job1 变为 运行 和 Finished 状态,然后 Job2 被选中并完成其执行。
有什么办法可以并行执行这些作业吗?
应用程序管理器如何挑选这些任务交给节点管理器?
集群设置使用 YARN Capacity Scheduler
,这是大多数可用 Hadoop 发行版的默认设置。如果同一个用户提交了多个作业,则它们进入同一个用户队列,遵循先进先出。这是容量调度程序的默认行为。
通过共享可用资源,Fair Scheduler
可以配置为 运行 个并行作业。
将此 属性 添加到 yarn-site.xml
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
在分配文件中配置公平调度程序queues
,
<property>
<name>yarn.scheduler.fair.allocation.file</name>
<value>/path/to/allocation-file.xml</value>
</property>
如果未配置此属性,默认情况下将为每个用户创建一个队列。
我设置了 1 个名称节点、2 个数据节点、1 个资源管理器和 2 个节点 Managers.All 组件是 运行 作为 docker 容器。 每次当我从 2 台机器(2 个客户端)执行 spark 提交(yarn 集群模式)时,作业都会按顺序完成。 Job1 和 Job2 都进入 Accepted 状态,Job1 变为 运行 和 Finished 状态,然后 Job2 被选中并完成其执行。 有什么办法可以并行执行这些作业吗? 应用程序管理器如何挑选这些任务交给节点管理器?
集群设置使用 YARN Capacity Scheduler
,这是大多数可用 Hadoop 发行版的默认设置。如果同一个用户提交了多个作业,则它们进入同一个用户队列,遵循先进先出。这是容量调度程序的默认行为。
Fair Scheduler
可以配置为 运行 个并行作业。
将此 属性 添加到 yarn-site.xml
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
在分配文件中配置公平调度程序queues
,
<property>
<name>yarn.scheduler.fair.allocation.file</name>
<value>/path/to/allocation-file.xml</value>
</property>
如果未配置此属性,默认情况下将为每个用户创建一个队列。