相关属性说明
yarn.scheduler.minimum-allocation-mb 1024 分配给AM单个容器可申请的最小内存,默认1024M RM属性
yarn.scheduler.maximum-allocation-mb 8192
分配给AM单个容器可申请的最大内存,默认8192M,
不能超过NM节点最大可用内存
RM属性
yarn.nodemanager.resource.memory-mb 8192 NM节点最大可用内存,默认8192M NM属性
yarn.nodemanager.vmem-check-enabled true 是否检查虚拟内存,默认true检查 NM属性
yarn.nodemanager.vmem-pmem-ratio 2.1 虚拟内存率,默认值是2.1 NM属性
分析:Memory usage of ProcessTree 11630 for container-id container_1554798900283_0001_01_000025: 695.6 MB of 2.5 GB physical memory used; 4.0 GB of 5.3 GB virtual memory use
默认物理内存是1GB,动态申请到了2.5GB,其中使用了695.6 MB。物理内存╳2.1=虚拟内存,2.5GB╳2.1≈5.3GB ,5.3GB虚拟内存中使用了4.0GB,当虚拟内存不够时候,NM的container就会自杀,这里虽然没耗尽,但也自杀了。所以有两个解决方案,或调整yarn.nodemanager.vmem-pmem-ratio值大点,或yarn.nodemanager.vmem-check-enabled=false,关闭虚拟内存检查