CDH集群中YARN的参数配置node
前言:Hadoop 2.0以后,原先的MapReduce不在是简单的离线批处理MR任务的框架,升级为MapReduceV2(Yarn)版本,也就是把资源调度和任务分发两块分离开来。而在最新的CDH版本中,同时集成了MapReduceV1和MapReduceV2(Yarn)两个版本,若是集群中须要使用Yarn作统一的资源调度,建议使用Yarn。app
CDH对Yarn的部分参数作了少了修改,而且添加了相关的中文说明,本文着重介绍了CDH中相比 MapReduceV1一些参数改动的配置。框架
1、CPU配置jvm
ApplicationMaster虚拟 CPU 内核oop
yarn.app.mapreduce.am.resource.cpu-vcores // ApplicationMaster占用的cpu内核数(Gateway--资源管理)性能
容器虚拟 CPU 内核优化
yarn.nodemanager.resource.cpu-vcores //单 个NodeManager 最大能分配的cpu核数(NodeManager --资源管理)spa
结论:当前 nodemanager 申请的 ApplicationMaster数总 和小于 nodemanager最大cpu内核数日志
2、内存配置orm
容器内存
yarn.nodemanager.resource.memory-mb //单个NodeManager能分配的最大内存(NodeManager --资源管理) //Memory Total= 单个NodeManager内存 * 节点数
结论:提交任务占用内存Memory Used 小于Memory Total
Map 任务内存
mapreduce.map.memory.mb //为做业的每一个 Map 任务分配的物理内存量 (Gateway--资源管理 )
结论:map或reduce的内存需求不大于appmaster的内存需求
最大容器内存
yarn.scheduler.maximum-allocation-mb //单个任务可申请最大内存 (ResourceManager--资源管理 )
3、同一个Map或者Reduce 并行执行
Map 任务推理执行
mapreduce.map.speculative //Gateway
Reduce 任务推理执行
mapreduce.reduce.speculative //Gateway
4、JVM重用
yarn的jvm重用跟以前不一样了,若是启用了该功能,则会将一个“小的application”的全部子task在同一个JVM里面执行,达到JVM重用的目的。
启用 Ubertask 优化 :
mapreduce.job.ubertask.enable | (默认false) //true则表示启用jvm重用(Gateway--性能)
jvm重用的决定参数以下:
Ubertask最大 Map
mapreduce.job.ubertask.maxmaps //超过多少个map启用jvm重用(Gateway--性能)
Ubertask最大 Reduce
mapreduce.job.ubertask.maxreduces //超过多少 Reduce 启用jvm重用,目前支持1个 (Gateway--性能)
Ubertask最大做业大小
mapreduce.job.ubertask.maxbytes //application的输入大小的阀值,默认为 block大小(Gateway--性能)
首先,简单回顾一下Hadoop 1.x中的JVM重用功能:用户能够经过更改配置,来指定TaskTracker在同一个JVM里面最多能够累积执行的Task的数量(默认是1)。这样的好处是减小JVM启动、退出的次数,从而达到提升任务执行效率的目的。 配置的方法也很简单:经过设置mapred-site.xml里面参数mapred.job.reuse.jvm.num.tasks的值。该值默认是1,意味着TaskTracker会为每个Map任务或Reduce任务都启动一个JVM,当任务执行完后再退出该JVM。依次类推,若是该值设置为3,TaskTracker则会在同一个JVM里面最多依次执行3个Task,而后才会退出该JVM。
在 Yarn(Hadoop MapReduce v2)里面,再也不有参数mapred.job.reuse.jvm.num.tasks,但它也有相似JVM Reuse的功能——uber。据Arun的说法,启用该功能可以让一些任务的执行效率提升2到3倍(“we've observed 2x-3x speedup for some jobs”)。不过,因为Yarn的结构已经大不一样于MapReduce v1中JobTracker/TaskTracker的结构,所以uber的原理和配置都和以前的JVM重用机制大不相同。
5、其余参数
给spark加日志编辑 spark-defaults.conf
spark.yarn.historyServer.address=http://cloud003:18080/