yarn内存参数

参考自: 

1)http://blog.chinaunix.net/uid-28311809-id-4383551.html
2)https://support.pivotal.io/hc/en-us/articles/201462036-Mapreduce-YARN-Memory-Parameters 

1、yarn-site.xml 设置

1.1 RM设置

RM的内存资源配置,主要是通过下面的两个参数进行的(这两个值是Yarn平台特性,应在yarn-sit.xml中配置好): 
yarn.scheduler.minimum-allocation-mb 
yarn.scheduler.maximum-allocation-mb
说明:单个容器可申请的最小与最大内存,应用在运行申请内存时不能超过最大值,小于最小值则分配最小值,从这个角度看,最小值有点想操作系统中的页。最小值还有另外一种用途,计算一个节点的最大container数目注:这两个值一经设定不能动态改变(此处所说的动态改变是指应用运行时)。

1.2 NM设置

NM的内存资源配置,主要是通过下面两个参数进行的(这两个值是Yarn平台特性,应在yarn-sit.xml中配置) :
yarn.nodemanager.resource.memory-mb
yarn.nodemanager.vmem-pmem-ratio
说明:每个节点可用的最大内存,RM中的两个值不应该超过此值。此数值可以用于计算container最大数目,即:用此值除以RM中的最小容器内存。虚拟内存率,是占task所用内存的百分比,默认值为2.1倍;注意:第一个参数是不可修改的,一旦设置,整个运行过程中不可动态修改,且该值的默认大小是8G,即使计算机内存不足8G也会按着8G内存来使用。

2、map-site.xml 设置

2.1 AM设置

AM内存配置相关参数,此处以MapReduce为例进行说明(这两个值是AM特性,应在mapred-site.xml中配置),如下:
mapreduce.map.memory.mb
mapreduce.reduce.memory.mb
说明:这两个参数指定用于MapReduce的两个任务(Map and Reduce task)的内存大小,其值应该在RM中的最大最小container之间。如果没有配置则通过如下简单公式获得:
max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
一般的reduce应该是map的2倍。注:这两个值可以在应用启动时通过参数改变;

2.2 AM JVM设置

AM中其它与内存相关的参数,还有JVM相关的参数,这些参数可以通过,如下选项配置:
mapreduce.map.java.opts
mapreduce.reduce.java.opts
说明:这两个参主要是为需要运行JVM程序(java、scala等)准备的,通过这两个设置可以向JVM中传递参数的,与内存有关的是,-Xmx,-Xms等选项。此数值大小,应该在AM中的map.mb和reduce.mb之间。

3、所有参数

YARN相关:
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.vmem-pmem-ratio
yarn.nodemanager.resource.memory.mb
Map相关参数
mapreduce.map.java.opts
mapreduce.map.memory.mb
Reduce相关参数
mapreduce.reduce.java.opts
mapreduce.reduce.memory.mb
注意:
在hadoop2及以上版本中,map和reduce task 是运行在container中的。mapreduce.{map|reduce}.memory.mb被yarn用来设置container的内存大小。如果container的内存超限,会被yarn杀死。在container中,为了执行map和reduce task,yarn会在contaner中启动一个jvm来执行task任务。mapreduce.{map|reduce}.java.opts用来设置container启动的jvm参数,通过设置Xmx来设置map 或者reduce task的最大堆内存。理论上,{map|reduce}.java.opts设置的最大堆内存要比{map|reduce}.memory.mb小。例如:
hadoop jar <jarName> -Dmapreduce.reduce.memory.mb=4096 -Dmapreduce.map.java.opts=-Xmx3276

4、举例说明

如下图:
默认情况下,yarn.nodemanager.vmem-pmem-ratio被设置为2.1,这意味着,每个map或者task任务只能使用2.1倍("mapreduce.reduce.memory.mb") or ("mapreduce.map.memory.mb") 大小的虚拟内存,否则,会被nm杀掉。
例如下面的的报错信息:
Current usage: 2.1gb of 2.0gb physical memory used; 1.6gb of 3.15gb virtual memory used. Killing container.

map container的内存("mapreduce.map.memory.mb")被设置为1536mb 。am为其申请了2048m的内存,因为am的最小分配(yarn.scheduler.minimum-allocation-mb)是1024.如果map task对内存超过了2048m,nm会kill掉该task。reduce类似。When a mapreduce job completes you will see several counters dumped at the end of the job.The three

memory counters below show how much physical memory was allocated vs virtual memory. 

### Flink YARN 参数配置及说明 #### 配置概述 为了使Flink能够在YARN环境中高效运行并充分利用集群资源,需合理设置一系列参数。这不仅有助于提升任务执行效率和资源利用率,还能增强任务的稳定性和可靠性[^2]。 #### 基本环境变量配置 对于Flink on YARN模式而言,在启动前应确保已正确设置了必要的环境变量。具体来说,编辑`/etc/profile`文件以指定Hadoop配置目录的位置: ```bash vim /etc/profile export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop ``` 上述操作确保了Flink能访问到正确的Hadoop配置信息,从而顺利连接至YARN集群[^4]。 #### 启动命令及其选项解释 当提交Flink作业给YARN时,常用的启动命令如下所示: ```bash nohup bin/flink run \ -m yarn-cluster \ # 使用YARN作为集群管理器 -yn 7 \ # 请求分配的任务槽数量 -shdfs:///flink/savepoints/savepoint-* \ # 指定保存点路径用于恢复状态 -c *.jars/*test > Flink-RealtimeDAU.log 2>&1 & ``` 此命令中包含了多个重要参数,其中`-m yarn-cluster`指定了采用YARN集群管理模式;而`-yn`则定义了所需容器的数量。此外,还可以通过其他参数进一步调整资源配置,如内存大小、CPU核心数等[^3]。 #### 关键参数详解 针对更复杂的场景需求,可通过修改`flink-conf.yaml`来实现高级功能支持。以下是几个关键配置项的例子: - **开启基于ZooKeeper的高可用性** ```yaml high-availability: zookeeper # 设置HA方式为zookeeper high-availability.zookeeper.quorum: ha1:2181,ha2:2181,ha3:2181 # ZooKeeper服务器列表 ``` - **设定JobManager元数据存储位置** ```yaml high-availability.storageDir: hdfs://mycluster/flink/ha/ ``` - **控制应用程序最大重试次数** ```yaml yarn.application-attempts: 4 # 对应于YARN AM的最大尝试次数 ``` 这些配置共同作用下可有效提高系统的容错能力和稳定性,特别是在生产环境下显得尤为重要[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值