如何规划和配置YARN和MapReduce 2
来源:互联网 发布:组态王软件价格 编辑:程序博客网 时间:2024/06/08 06:34
来源:http://zh.hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp-2-0/
在HDP2.0 Beta中,Yarn作为MapReduce的资源管理器,并且可以被其他的编程模型所使用,这简化了MapReduce,让MapReduce做它最擅长的数据处理工作。使用Yarn,能够在Hadoop上运行多种类型的应用,这些应用共享资源管理。
这篇文章中我们将会讲解在企业版HDP2.0中如何规划和配置集群处理能力,这将会涉及到Yarn和MapReduce 2。我们假设集群中每个结点配置为48G RAM,12块硬盘,2个6核心CPU(共12核).
Yarn管理了集群中所有可用资源,处理集群中所有应用(比如MapReduce)的请求。Yarn以Container为单位为应用分配处理能力,Container是处理能力和资源(memory、cpu等)的封装。
配置Yarn
在Hadoop集群中,平衡RAM、CPU和Disk的使用率至关重要,以免处理能力不会被任何一种资源所限制。一般来说,1块Disk和一个Core分配给一到两个Container能够更好的平衡集群的利用率,因此在我们的例子中每个Node 12 Disk, 12 Cores,允许最多分配20个Container。
每个Node有48G RAM, 一些RAM需要保留给OS使用,因此我们分配40G给Yarn,8G给OS。以下属性配置了Node上Yarn能够使用的最大内存:
yarn-site.xml中:
<name>yarn.nodemanager.resource.memory-mb</name>
<value>40960</value>
以下步骤是如何划分集群中所有资源给Container的一个指导,可以指定分配给每个Container的最大RAM,我们最多有20个Container,因此每个Container最小有2G RAM(共40G/20Containers)。
yarn-site.xml中:
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
Yarn给每个Container分配RAM至少yarn.scheduler.minimum-allocation-mb大小。
配置MapReduce 2
MR v2是基于Yarn的,使用Yarn Containers调度和执行Map Reduce tasks. 在Yarn上配置MR v2资源利用时需要考虑以下三个方面:
1、每个Map Reduce Task的物理RAM限制
2、每个Task的JVM Heap大小
3、每个Task的虚拟内存大小
你可以定义每个Task的最大内存,每个Map Reuce Task都是运行在单独的Container中,所以Task的最大内存大小应该大于或等于Yarn为Container分配的最小大小。
我们的例子中,每个Container的最小RAM(yarn.scheduler.minimum-allocation-mb)为2G,我们为Map Task Container分配4G, Ruduce Task Container分配8G,
mapred-site.xml中:
<name>mapreduce.map.memory.mb</name>
<value>4096</value>
<name>mapreduce.reduce.memory.mb</name>
<value>8192</value>
每个Container都会启动JVM运行MapReduce Task, JVM的Heap大小应该小于以上Map Reduce RAM的定义,这样就不会超过为Container分配的RAM边界。
mapres-site.xml中:
<name>mapreduce.map.java.opts</name>
<value>-Xmx3072</value>
<name>mapreduce.reduce.java.opts</name>
<value>-Xml6144m</value>
以上配置了MapReduce Task使用的堆(物理内存)上限。每个MapReduce Task的虚拟内存上限由Container的虚拟内存率决定,以下属性配置此值,默认是2.1
yarn-site.xml中:
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
通过以上配置每个Map Task的内存分配如下:
物理内存4G
Map Task Container中JVM Heap上限3G
虚拟内存上限4*2.1=8.4G
在Yarn和MR v1中,再也没有为Map Reduce Task提前分配好的静态slots,整个集群为job按需动态分配Map Reduce资源。在我们的例子中,通过以上配置,YARN在每个Node上最多分配10(40/4)个mapper或最多分配5(40/8)个Reducer,或者范围内Map Reduce Task的组合.
下一步:
在HDP 2.0 Beta版中,可以使用 Apache Ambari 配置YARN和Map Reduce 2.
0 0
- 如何规划和配置YARN和MapReduce 2
- Mapreduce和yarn的内存配置
- 如何优化YARN和MapReduce内存
- mapreduce和yarn
- 如何判定并设置YARN 和MapReduce 内存
- 如何判定并设置YARN 和MapReduce 内存
- MapReduce和YARN的关系
- HDFS、YARN和MapReduce简介
- MapReduce和Yarn的理解
- How to Plan and Configure YARN and MapReduce 2 in HDP 2.0 如何配置YARN
- YARN和MapReduce的内存设置参考
- Hadoop MapReduce和Yarn的关系
- MapReduce和Yarn的架构设计
- Spark on YARN和MapReduce on YARN区别
- 第120讲:Hadoop的MapReduce和Yarn的配置实战详解学习笔记
- Hadoop2.X中Mapreduce,YARN等配置,启动和常见错误解决办法
- yarn & mapreduce 配置参数总结
- yarn & mapreduce 配置参数总结
- IOS 几种简单常用动画
- UltimateRecyclerView
- 常见的正则表达式总结
- 1 计算机组成原理和系统安装(云计算)
- UML建模快速入门00 Outline
- 如何规划和配置YARN和MapReduce 2
- LeetCode - Construct Binary Tree from Inorder and Postorder Traversal
- Sicily 13290 Play with Strings powered by wangbin
- HDU 5195 DZY Loves Topological Sorting
- 【LeetCode】Word Ladder 字符串
- virtual box下安装centos遇到的N个问题,纯新手为后来的更多纯新手发福利,少走弯路,少浪费时间!
- 习题2-7
- [LeetCode 39&40] Combination Sum I & II
- poj2985 并查集+树状数组第k小