yarn 参数调整

配置NodeManager

yarn-site.xml

<property>
	<name>yarn.nodemanager.resource.cpu-vcores</name>
	<value>8</value>
	<discription>每个nodemanager可分配的cpu总核数,默认8</discription>
</property>

<property>
	<name>yarn.nodemanager.resource.memory-mb</name>
	<value>8192</value>
	<discription>每个nodemanager可分配的内存总量,默认8g</discription>
</property>

查看集群的逻辑核数命令

cat /proc/cpuinfo | grep "processor" | wc -l

配置 Container

yarn-site.xml

<property>
	<name>yarn.scheduler.minimum-allocation-mb</name>
	<value>1024</value>
	<discription>单个任务运行在容器当中,每个container可申请的最小的内存,默认1024MB</discription>
</property>

<property>
	<name>yarn.scheduler.maximum-allocation-mb</name>
	<value>8192</value>
	<discription>单个任务运行在容器当中,每个container可申请最大的内存,默认8192MB</discription>
</property>


<property>
	<name>yarn.scheduler.minimum-allocation-vcores</name>
	<value>1</value>
	<discription>单个任务运行在容器当中,container可申请的最小虚拟CPU个数,默认1</discription>
</property>

<property>
	<name>yarn.scheduler.maximum-allocation-vcores</name>
	<value>4</value>
	<discription>单个任务运行在容器当中,container可申请的最多虚拟CPU个数,默认4个,一般需要修改,因有公司做过测试,可百度</discription>
</property>

注意: 单个Container分配的资源要小于单个NodeManager

配置 mapTask reduceTask

mapred-site.xml

内存

<!-- 2者共进退 -->
<property>
	<name>mapreduce.map.memory.mb</name>
	<value>1024</value>
	<discription> mapTask 从容器中可以请求的最大内存数量,默认1024</discription>
</property>

<property>
	<name>mapreduce.map.java.opts</name>
	<value>-Xmx1024M</value>
	<discription>mapTask的运行是在容器当中,容器的创建需要启动jvm,jvm的创建需要堆内存。这个参数来控制最大堆内存数</discription>
</property>


<!-- 2者共进退 -->
<property>
	<name>mapreduce.reduce.memory.mb</name>
	<value>1024</value>
	<discription> reduceTask 从容器中可以请求的最大内存数量,默认1024</discription>
</property>

<property>
	<name>mapreduce.reduce.java.opts</name>
	<value>-Xmx1024M</value>
	<discription> reduceTask 的运行是在容器当中,容器的创建需要启动jvm,jvm的创建需要堆内存。这个参数来控制最大堆内存数</discription>
</property>

CPU

mapreduce.map.cpu.vcores:默认1个
mapreduce.reduce.cpu.vcores:默认1

配置 ApplicationMaster

mapred-site.xml

<property>
	<name>yarn.app.mapreduce.am.resource.cpu-vcores</name>
	<value>1</value>
	<discription>ApplicationMaster使用的cpu核数,默认1</discription>
</property>

<property>
	<name>yarn.app.mapreduce.am.resource.mb</name>
	<value>1536</value>
	<discription>ApplicationMaster的占用的内存大小,默认1536</discription>
</property>

配置 CPU虚拟核数

CPU虚拟核数什么意思

A服务器,CPU为i7,B服务器,CPU为i3,简单来说,我想把i7的一个CPU核心当做2个用,i3的当做1个用

配置文件:yarn-site.xml

<!--是否将虚拟核数当作CPU核数 默认false-->
<property>
	<name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
	<value>false</value>
</property>

<!--虚拟核数和物理核数乘数 默认1.0-->
<property>
	<name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
	<value>1.0</value>
</property>

<!--A服务器怎么配置-->
<property>
	<name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
	<value>true</value>
</property>
<property>
	<name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
	<value>2.0</value>
</property>

其它常用参数

  • mapred-site.xml

Shuffle相关的mapreduce.task.io.sort.mb环形缓冲区大小,默认100m
Shuffle相关的mapreduce.map.sort.spill.percent环形缓冲区溢出的阈值,默认80%
Shuffle相关的mapreduce.task.io.sort.factor在Map 任务完成前,所有的spill 文件将会被归并排序为一个索引文件和数据文件。这是一个多路归并过程,最大归并路数由io.sort.factor 控制(默认是10)
ReduceTaskmapreduce.reduce.shuffle.input.buffer.percentReduceTask拉取过来的数据先缓存到内存,内存中的数据达到多少比例开始写入磁盘。默认值0.7
ReduceTaskmapreduce.reduce.input.buffer.percentReduceTask的Buffer占堆内存的大小,默认值是0.0
容错相关参数mapreduce.map.maxattempts每个MapTask最大重试次数,一旦重试参数超过该值,则认为MapTask运行失败,默认值:4
容错相关参数mapreduce.reduce.maxattempts每个ReduceTask最大重试次数,一旦重试参数超过该值,则认为MapTask运行失败,默认值:4
容错相关参数mapreduce.task.timeout如果Task在一定时间内既没有读取新的数据,也没有输出数据,则认为该Task可能是卡住了,也许会永远卡住,为了防止这种情况的发生,设置了一个该超时等待时间(单位毫秒),默认是600000
  • yarn-site.xml

虚拟内存相关的yarn.nodemanager.vmem-check-enabled是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true
虚拟内存相关的yarn.nodemanager.vmem-pmem-ratio虚拟内存和物理内存设置比例,默认2.1
调度器相关的yarn.resourcemanager.scheduler.class选择哪个调度器,apache,默认容量
Resourcemanager相关的yarn.resourcemanager.scheduler.client.thread-countresourcemanager负责接待客户端的线程数,默认50。该值最好小于单台服务器总线程数
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值