Apache Hadoop Yarn,全称为:Yet Another Resource Negotiator。是 Apache Hadoop 生态中的一个子项目,用于资源管理和作业调度。Hadoop 是一个用于处理大规模数据的开源框架,而 Yarn 则负责在 Hadoop 集群中管理资源以及协调作业的执行。

通过这些组件的协作,Yarn 实现了资源的高效分配和作业的灵活调度,使得 Hadoop 集群能够同时支持多种类型的应用程序和计算模式。

每种调度器都有其适用的场景和优缺点,选择合适的调度器取决于集群的需求和使用情况。在实际应用中,可以根据资源需求、优先级和公平性要求来决定使用哪种调度器,以最优化地管理集群资源。
Hadoop Yarn 同时支持 memory 和 cpu 两种资源的调度。
memory的多少会决定任务的生死,如果内存不够,任务可能会运行失败。cpu的多少只会决定任务运行的快慢。
# 该节点上 Yarn 可使用的物理内存总量,默认是8192(MB),如果设置为-1,并且yarn.nodemanager.resource.detect-hardware-capabilities 为true时,将会自动计算操作系统内存进行设置。
yarn.nodemanager.resource.memory-mb
# 任务每使用 1MB 物理内存,最多可使用虚拟内存量,默认是2.1
yarn.nodemanager.vmem-pmem-ratio
# 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
yarn.nodemanager.pmem-check-enabled
# 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
yarn.nodemanager.vmem-check-enabled
# 单个任务可申请的最少物理内存量,默认是 1024(MB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数。
yarn.scheduler.minimum-allocation-mb
# 单个任务可申请的最多物理内存量,默认是8192(MB)
yarn.scheduler.maximum-allocation-mb
# 该节点上 Yarn 可使用的虚拟 CPU 个数,默认是8,注意,目前推荐将该值设值为与物理 CPU 核数数目相同。如果你的节点 CPU 核数不够8个,则需要调减小这个值。如果设置为-1,并且yarn.nodemanager.resource.detect-hardware-capabilities为true时,将会自动计算操作系统CPU 核数进行设置。
yarn.nodemanager.resource.cpu-vcores
# 单个任务可申请的最小虚拟 CPU 个数,默认是1,如果一个任务申请的 CPU 个数少于该数,则该对应的值改为这个数。
yarn.scheduler.minimum-allocation-vcores
# 单个任务可申请的最多虚拟CPU个数,默认是4。
yarn.scheduler.maximum-allocation-vcores
# 设置 Yarn 的调度器
yarn.resourcemanager.scheduler.class
# RM 处理调度器请求的线程数量,默认50,如果 Yarn 运行任务比较多,可以适当将值调大。
yarn.resourcemanager.scheduler.client.thread-count
# 是否让 Yarn 自己检测硬件进行配置,默认 false,如果设为 true,就会自动检测 NodeManager 所在机器的 memory 和 cpu。
yarn.nodemanager.resource.detect-hardware-capabilities
# 此参数,仅当上述参数为 true 和参数为 -1 时,设置才生效
yarn.nodemanager.resource.system-reserved-memory-mb
# 是否将虚拟核数当作 cpu 核数,默认为 false。
yarn.nodemanager.resource.count-logical-processors-as-cores
# 虚拟核数和物理核数乘数,例如:4核8线程,该参数就应设为2,默认1.0。
yarn.nodemanager.resource.pcores-vcores-multiplier
# NodeManager 使用内存,默认8G
yarn.nodemanager.resource.memory-mb
# NodeManager 使用 cpu 核数,默认8个
yarn.nodemanager.resource.cpu-vcores
# 是否开启物理内存检查限制,默认为 true。
yarn.nodemanager.pmem-check-enabled
# 是否开启虚拟内存检查限制,默认为 true。
yarn.nodemanager.vmem-check-enabled
# 虚拟内存物理内存比例,默认2.1
yarn.nodemanager.vmem-pmem-ratio
# 单个任务可申请的最少物理内存量,默认是1024(MB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数。
yarn.scheduler.minimum-allocation-mb
# 单个任务可申请的最多物理内存量,默认是8192(MB)
yarn.scheduler.maximum-allocation-mb
# 单个任务可申请的最小虚拟 cpu 个数,默认是1,如果一个任务申请的 cpu 个数少于该数,则该对应的值改为这个数。
yarn.scheduler.minimum-allocation-vcores
# 单个任务可申请的最多虚拟 cpu 个数,默认是4。
yarn.scheduler.maximum-allocation-vcores
原文作者:毛毛小妖的笔记;如有侵权,请联系管理员删除。