1.YARN中处理能力的基本单元是什么?
2.什么是保留内存?
3.4到8G Container建议多少M?
在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考虑资源调度. YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供处理能力, Container是YARN中处理能力的基本单元, 是对内存, CPU等的封装.
在Hadoop集群中,平衡内存(RAM)、处理器(CPU核心)和磁盘的使用是至关重要的,合理规划以免某一项引起瓶颈制约。一般的建议是,一块磁盘和一个CPU核心上配置两个Container会达到集群利用率的最佳平衡。
从可用的硬件资源角度看,要调整群集每个节点Yarn和MapReduce的内存配置到合适的数据,应注意以下几个重要的元素:
- RAM (总内存大小)
- CORES (CPU核心数)
- DISKS (磁盘数)
Yarn和MapReduce的总的可用内存应考虑到保留的内存。保留的内存是由系统进程和其他Hadoop进程(如Hbase)所需要的内存。
保留内存=保留系统内存+保留HBase内存(如果HBase是在同一个节点)
使用下表确定每个节点的保留的内存:
建议保留的内存
每个节点的内存总量 |
建议保留系统内存 |
建议保留HBase的内存 |
4 GB |
1 GB |
1 GB |
8 GB |
2 GB |
1 GB |
16 GB |
2 GB |
2 GB |
24 GB |
4 GB |
4 GB |
48 GB |
6 GB |
8 GB |
64 GB |
8 GB |
8 GB |
72 GB |
8 GB |
8 GB |
96 GB |
12 GB |
16 GB |
128 GB |
24 GB |
24 GB |
256 GB |
32 GB |
32 GB |
512 GB |
64 GB |
64 GB |
下面的计算是确定每个节点的Container允许的最大数量。
#Container数量=min (2*CORES, 1.8*DISKS, (可用内存)/最低Container的大小)
最低Container的大小 这个值是依赖于可用的RAM数量——在较小的存储节点,最小的Container的大小也应较小。下面的表列出了推荐值:
每个节点的总内存 |
建议的最低Container的大小 |
小于 4 GB |
256 MB |
4 GB 到 8 GB |
512 MB |
8 GB 到 24 GB |
1024 MB |
24 GB 以上 |
2048 MB |
最后计算的每个Container的内存大小是:
每个Container的内存大小 = max(最小Container内存大小, (总可用内存) /Container数))
根据计算,YARN 和 MapReduce 配置如下:
配置文件 |
配置项 |
设置值 |
yarn-site.xml |
yarn.nodemanager.resource.memory-mb |
= Container数量 * 每个Container的内存大小 |
yarn-site.xml |
yarn.scheduler.minimum-allocation-mb |
= 每个Container的内存大小 |
yarn-site.xml |
yarn.scheduler.maximum-allocation-mb |
= Container数量 * 每个Container的内存大小 |
mapred-site.xml |
mapreduce.map.memory.mb |
= 每个Container的内存大小 |
mapred-site.xml |
mapreduce.reduce.memory.mb |
= 2 * 每个Container的内存大小 |
mapred-site.xml |
mapreduce.map.java.opts |
= 0.8 * 每个Container的内存大小 |
mapred-site.xml |
mapreduce.reduce.java.opts |
= 0.8 * 2 * 每个Container的内存大小 |
yarn-site.xml (check) |
yarn.app.mapreduce.am.resource.mb |
= 2 * 每个Container的内存大小 |
yarn-site.xml (check) |
yarn.app.mapreduce.am.command-opts |
= 0.8 * 2 * 每个Container的内存大小 |
提醒: 安装完成后, yarn-site.xml 和 mapred-site.xml 的配置文件在安装目录的 /etc/hadoop/文件夹下.
例如:
集群的节点有 12 CPU cores, 48 GB RAM, and 12 磁盘.
预留内存= 6 GB 系统预留 + 8 GB HBase预留
最小Container内存大小 = 2 GB
如果不安装 HBase:
#Container数 = min (2*12, 1.8* 12, (48-6)/2) = min (24, 21.6, 21) = 21
每个Container的内存大小 = max (2, (48-6)/21) = max (2, 2) = 2
Configuration |
Value Calculation |
yarn.nodemanager.resource.memory-mb |
= 21 * 2 = 42*1024 MB |
yarn.scheduler.minimum-allocation-mb |
= 2*1024 MB |
yarn.scheduler.maximum-allocation-mb |
= 21 * 2 = 42*1024 MB |
mapreduce.map.memory.mb |
= 2*1024 MB |
mapreduce.reduce.memory.mb |
= 2 * 2 = 4*1024 MB |
mapreduce.map.java.opts |
= 0.8 * 2 = 1.6*1024 MB |
mapreduce.reduce.java.opts |
= 0.8 * 2 * 2 = 3.2*1024 MB |
yarn.app.mapreduce.am.resource.mb |
= 2 * 2 = 4*1024 MB |
yarn.app.mapreduce.am.command-opts |
= 0.8 * 2 * 2 = 3.2*1024 MB |
如果安装 Hbase:
#Container数 = min (2*12, 1.8* 12, (48-6-8)/2) = min (24, 21.6, 17) = 17
每个Container的内存大小 = max (2, (48-6-8)/17) = max (2, 2) = 2
配置项 |
配置大小 |
yarn.nodemanager.resource.memory-mb |
= 17 * 2 = 34*1024 MB |
yarn.scheduler.minimum-allocation-mb |
= 2*1024 MB |
yarn.scheduler.maximum-allocation-mb |
= 17 * 2 = 34*1024 MB |
mapreduce.map.memory.mb |
= 2*1024 MB |
mapreduce.reduce.memory.mb |
= 2 * 2 = 4*1024 MB |
mapreduce.map.java.opts |
= 0.8 * 2 = 1.6*1024 MB |
mapreduce.reduce.java.opts |
= 0.8 * 2 * 2 = 3.2*1024 MB |
yarn.app.mapreduce.am.resource.mb |
= 2 * 2 = 4*1024 MB |
yarn.app.mapreduce.am.command-opts |
= 0.8 * 2 * 2 = 3.2*1024 MB |
相关推荐
1. **客户端到ResourceManager的通信协议**:用于提交应用程序到ResourceManager,传递应用相关的配置信息。 2. **ApplicationMaster到ResourceManager的通信协议**:用于申请资源(容器)。 3. **ApplicationMaster...
这些建议可能包括但不限于以下YARN相关的配置项: 1. **yarn.nodemanager.resource.memory-mb**:定义每个节点上可以分配给YARN容器的最大内存。 2. **yarn.nodemanager.vmem-pmem-ratio**:虚拟内存与物理内存的...
《Hadoop YARN 权威指南》是一本深入解析Hadoop集群资源管理框架YARN的专业书籍,分为中文版和英文版。这本书对于理解和掌握Hadoop生态系统中的YARN至关重要,尤其对于大数据开发者、系统管理员和数据科学家来说,是...
本篇将深入探讨YARN内存分配的管理机制以及相关参数配置。 首先,YARN内存管理涉及到三个主要角色:ResourceManager(RM)、ApplicationMaster(AM)和NodeManager(NM)。 1. ResourceManager(RM):RM是全局...
- **Cloudera Manager中的属性设置**:利用Cloudera Manager界面配置相关属性。 - **内存设置**:具体设置每个组件的内存分配。 - **YARN配置属性**:查看和调整YARN的相关配置属性。 #### 十、YARN REST APIs - *...
一个计算yarn内存配置的python脚本yarn-util.py,该脚本有四个参数 参数 描述 -c CORES 每个节点CPU核数 -m MEMORY 每个节点内存总数(单位G) -d DISKS 每个节点的硬盘个数 -k HBASE 如果安装了Hbase则为True,...
在大数据处理领域,Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop项目中的一个核心组件,负责管理和调度集群中的资源。YARN为大数据处理提供了高效、可扩展的资源管理框架,使得不同类型的计算...
在实际应用中,YARN的配置和优化是关键,包括调整内存设置、优化队列策略、监控与日志管理等。合理的资源配置和调优能进一步提升系统效率,确保大数据处理任务的顺利完成。 六、未来发展趋势 随着大数据技术的发展...
Hadoop 2.0 YARN,全称Yet Another Resource Negotiator,是Apache Hadoop生态系统中的一个核心组件,它在Hadoop 1.0 MapReduce的基础上进行了重大改进,旨在解决资源管理和调度的问题,以提高分布式计算的效率和...
2. **yarn-default.xml**:这个文件包含了YARN的相关配置,YARN是Hadoop的资源管理系统,负责调度计算资源,如内存、CPU。关键参数包括`yarn.nodemanager.resource.memory-mb`(定义每个节点的可用内存)、`yarn....
在CCTC 2016中国云计算技术大会上,Hulu大数据架构组负责人董西成所作的报告“Hadoop YARN在异构环境下应用与实践”,深入介绍了YARN如何在不同硬件配置的机器组成的异构环境中高效地运行多种大数据计算框架。...
### YARN内存与CPU配置详解 #### 一、引言 Apache Hadoop YARN(Yet Another Resource Negotiator)作为新一代的资源管理和任务调度框架,在大数据处理领域占据着重要的地位。YARN不仅支持内存资源的调度,还支持...
3. **配置文件**: 配置Hadoop在Windows上运行涉及到修改一系列配置文件,如`core-site.xml`(核心站点配置)、`hdfs-site.xml`(HDFS站点配置)、`mapred-site.xml`(MapReduce站点配置)和`yarn-site.xml`(YARN...
在Hadoop集群中,YARN(Yet Another Resource Negotiator)作为资源管理器,负责调度MapReduce任务的内存和CPU资源。YARN支持基于内存和CPU的两种资源调度策略,以确保集群资源的有效利用。在非默认配置下,合理地...
我们将依据《如何搭建hadoop伪分布式》这篇文章,并结合提供的配置文件来探讨相关知识点。 首先,你需要下载Hadoop的安装包,推荐选择稳定版本,如Hadoop 2.x或3.x系列。下载完成后,解压到一个合适的目录,例如`/...
**Apache Hadoop YARN 深入解析** Apache Hadoop 是一个开源的分布式计算框架,主要由两个核心组件构成:HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource Negotiator)。本教程将深入探讨YARN...
yarn-site.xml文件中,你需要配置YARN的资源管理器(Resource Manager)和应用管理器(Application Manager)地址,以及容器(Container)的内存和CPU资源分配。`yarn.nodemanager.resource.memory-mb`和`yarn.nodemanager...
YARN是Hadoop的第二代资源调度系统,负责管理集群的内存和CPU资源。在这个文件中,你可以看到如`yarn.resourcemanager.address`、`yarn.nodemanager.aux-services`等配置项,它们分别定义了ResourceManager的地址和...