核心概念澄清 在 hadoop 生态中,负责资源调度的是 yarn(resourcemanager、nodemanager、applicationmaster、container),而 hdfs 主要负责分布式存储。因此,谈及“资源调度策略”通常指的是 yarn 的调度器;同时,围绕 hdfs 的数据读写会配合 yarn 的调度策略,通过数据本地化等手段提升性能。
yarn 调度器策略
与 hdfs 协同的调度与优化策略
快速配置示例(启用容量调度器) 在 yarn-site.xml 中设置调度器类型与基础资源参数,可快速启用容量调度器:
<configuration>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8192</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
</property>
<property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.1</value>
</property>
<property>
<name>yarn.scheduler.capacity.node-locality.wait</name>
<value>400</value>
</property>
</configuration>
上述配置指定使用 capacityscheduler,并设置单节点可分配的 内存 与 cpu 核数,以及 am 资源占比与本地性等待时间等关键参数。