我设置了1个名称节点,2个数据节点,1个资源管理器和2个节点管理器。所有组件都作为docker容器运行。 每当我从2台机器(2个客户机)执行spark提交(纱线群集模式)时,作业将按顺序完成。 Job1和Job2都进入Accepted状态,Job1变为Running和Finished状态,然后选择Job2并完成执行。 这些工作有没有以平行的方式执行? 应用程序管理器如何选择这些任务以将其提供给节点管理器?
答案 0 :(得分:0)
群集设置使用YARN Capacity Scheduler
,这在大多数可用的Hadoop发行版中都是默认的。如果同一用户提交了多个作业,则它们将进入跟随FIFO的同一用户队列。这是容量调度程序的默认行为。
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>
如果未配置此属性,则默认情况下将为每个用户创建一个队列。