1.使用好三种调度器
将任务分队列,不同的任务使用不同的队列
三种调度器详解:https://blog.csdn.net/qq_23160237/article/details/86585511
2.充分利用cpu和内存
yarn资源管理有虚拟核和虚拟内存的概念,可以将虚拟核、虚拟内存调整为物理机的两到三倍,增加任务数量,提高cpu使用率。
yarn.nodemanager.resource.cpu-vcores 虚拟核数,默认为8
yarn.scheduler.minimum-allocation-vcores 为每个Container分配的最少的vcore,默认为1
yarn.scheduler.maximum-allocation-vcores 为每个Container分配的最多的vcore,默认为4
yarn.nodemanager.resource.memory-mb NM占用机器的内存大小
yarn.scheduler.minimum-allocation-mb Container包含的最小内存
yarn.scheduler.maximum-allocation-mb Container包含的最大内存
yarn.nodemanager.pmem-check-enabled 容器是否会执行物理内存限制,默认为True
yarn.nodemanager.vmem-check-enabled 容器是否会执行虚拟内存限制,默认为True
yarn.nodemanager.vmem-pmem-ratio 使用虚拟内存和物理内存的比值,默认为2.1
3.NameNode做HA或者Feration
HA : 保证namenode压力过大宕机,使集群高可靠
Feration: 使namenode负载均衡