基本概念
- 作业、job、application、应用 是同一个意思
- container:容器,yarn 的组件,是一个虚拟的概念,将一定的内存和 CPU,比如 1G 内存,一个 vcore 抽象为一块地方,来运行任务
YARN 的参数调优
- 一台 64G,16Cores 的服务器,系统安装完一般会使用一定的内存,假设还剩余 62G 内存,一般预留 15% ~ 20% 的空间,还剩余近 50G 的内存空间可供使用,预留的 12G 分配给 NN 4G,NM 1G,真正的预留空间还剩 7G
- 内存方面的参数
- yarn.nodemanager.resource.memory-mb:计算总内存,默认-1,即分配8G
- yarn.scheduler.minimum-allocation-mb:每个 container 的最小大小,默认 1G
- yarn.scheduler.maximum-allocation-mb:在计算过程中可能 container 需要的内存比分配的最小的container内存要大,这个参数指定的是可以自动扩展到最大的内存大小,默认 8G
- CPU方面的参数(vcore:虚拟core)
- yarn.nodemanager.resource.cpu-vcores:表示该节点上YARN可以使用的vcore个数,默认是8,建议在生产上调整为实际物理core个数的两倍,一个 16Core