Yarn的生产资源管理

假设一台机器有48G物理内存 ,8core (按照1:2的一般配置)虚拟core(vcore)有 16个

1)Linux系统本身要占内存+空留:20%  ----》 48*0.2=9.6G

剩余:80%  = 38.4G

2)DN进程(datanode):生产4G

     更改datanode的配置(hadoop-env.sh)

               HADOOP_NAMENODE_OPTS=-Xmx1024m
               HADOOP_DATANODE_OPTS=-Xmx1024m

3)NM进程:4G

     更改NodeManager的配置(yarn-env.sh)

              export YARN_RESOURCEMANAGER_HEAPSIZE=1024
              export YARN_NODEMANAGER_HEAPSIZE=1024

因此,机器还剩 38.4-4-4 =30.8G (近似30G)

dn和nm一般部署在同一台机器:数据本地化

 Yarn的资源管理

对于物理内存:

yarn.nodemanager.resource.memory-mb   30*1024   30G
默认配置
yarn.scheduler.minimum-allocation-mb  1024    1G
yarn.scheduler.maximum-allocation-mb  8192    8G

因此,container的个数为:

3(30/8)个 ~30(30/1) 个

 

生产1:

yarn.nodemanager.resource.memory-mb   30G 
yarn.scheduler.minimum-allocation-mb  2G
yarn.scheduler.maximum-allocation-mb  30G

container个数: 1个~15个

 

生产2:

yarn.nodemanager.resource.memory-mb   32G (从系统借的,系统占用的空间就小于20%)
yarn.scheduler.minimum-allocation-mb  2G
yarn.scheduler.maximum-allocation-mb  8G

container个数:4个~16个

 

对于CPU:

yarn.nodemanager.resource.cpu-vcores     12
yarn.scheduler.minimum-allocation-vcores  1
yarn.scheduler.maximum-allocation-vcores  4

container:

3个~12个

 

在生产中,要合理配置物理内存和CPU虚拟核的参数,避免出现资源浪费。

 

 

 

 

 

 

相关文章: