`
zhangxiong0301
  • 浏览: 352340 次
社区版块
存档分类
最新评论

(转)hadoop yarn 内存相关配置

阅读更多

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
分享到:
评论

相关推荐

    YARN内存配置计算脚本

    一个计算yarn内存配置的python脚本yarn-util.py,该脚本有四个参数 参数 描述 -c CORES 每个节点CPU核数 -m MEMORY 每个节点内存总数(单位G) -d DISKS 每个节点的硬盘个数 -k HBASE 如果安装了Hbase则为True,...

    Yarn 内存分配管理机制及相关参数配置.

    关于Yarn内存分配与管理,主要涉及到了ResourceManage、ApplicationMatser、NodeManager这几个概念,相关的优化也要紧紧围绕着这几方面来开展。这里还有一个Container的概念,现在可以先把它理解为运行map/reduce ...

    yarn内存和CPU配置

    Yarn的内存和CPU配置宝典 ,帮助你理解并解决配置问题,优化配置

    23、hadoop集群中yarn运行mapreduce的内存、CPU分配调度计算与优化

    23、hadoop集群中yarn运行mapreduce的内存、CPU分配调度计算与优化 ...本文介绍在hadoop集群中,不适用默认的参数情况下,yarn的cpu和内容配置。 本文依赖是hadoop集群正常...本文分为3个部分,即概述、cpu和内存配置。

    Cloudera Hadoop 5&Hadoop高阶管理及调优课程

    1、Hadoop2.0高阶运维,包括Hadoop节点增加删除、HDFS和YARN的HA实现, HDFS Federation实现等 2、搭建本地Yum部署CDH5的重要组件和优化配置 3、Impala、Oozie和Hue的部署、使用操作及调优 4、Hadoop安全认证及授权...

    spark 集群环境开发部署(hadoop,yarn,zookeeper,alluxio,idea开发环境)

    个人总结的集群搭建运行事例环境文档。...有spark standalone模式 yarn模式 zookeeper的搭建 还有分布式文件系统hdfs hadoop搭建,内存式文件系统alluxio。开发环境的搭建idea for scala 的配置 ,和打包事例

    Hadoop2.6集群环境搭建(HDFS HA+YARN)

    1、笔记本4G内存 ,操作系统WIN7 (屌丝的配置) 2、工具VMware Workstation 3、虚拟机:CentOS6.4共四台 每台机器:内存512M,硬盘40G,网络适配器:NAT模式 边看边操作 (本人原创)

    基于YARN资源调度器的MapReduce作业数调节方法

    YARN是Hadoop的一个分布式的资源管理系统,用来提高分布式集群的内存、I/O、网络、磁盘等资源的利用率.然而,YARN的配置参数众多,要对其人工调优并获得最佳的性能费时费力.本文在现有的YARN资源调度器的基础上,...

    Spark学习笔记

    spark 可以很容易和yarn结合,直接调用HDFS、Hbase上面的数据,和hadoop结合。配置很容易。 spark发展迅猛,框架比hadoop更加灵活实用。减少了延时处理,提高性能效率实用灵活性。也可以与hadoop切实相互结合。 ...

    大数据学习计划.pdf

    2、通过对 Linux ⽂件系统、(⼤数据学习群142974151】内核参数、内存结构、以及 Java 虚 拟机等相关知识的学习,为后续学习分布式 ⽂件系统, Hadoop 集群优化扫清操作系统层 ⾯知识的障碍 2 Hadoop 由许多元素...

    大数据开源框架集锦.pdf

    可视化的UI界⾯中⽅便地管理 配置和监控Hadoop以及其它所有相关组件 简单来说将⼗⼏个hadoop开源项⽬集成在⼀起 HDP 基于hadoop⽣态系统开源组件构建的⼤数据分析平台 2 集群管理与监控 Cloudera Manager ⽤于部署和...

    【容器系统】之大数据容器化-基于Kubernetes构建现代大数据系统.pdf

    它的特点是基于内存计算,⽀持各类资源管理平台,其中以YARN最为常 见,同时⼜与Hadoop平台集成,在集群节点以HDFS作为分布式⽂件存储系统。 我们可以先看⼀下搭建⼀个常见的Apache Spark⼤数据平台需要哪些步骤: 1...

    singular:Apache YARN 之上的高级库

    Singular 是周末在 Apache YARN 之上制作高级库的努力,这将使编写分布式应用程序变得更容易。 Java 使多线程编程变得更容易的方式。 同样,以同样的方式编写分布式程序会很好。 只需定义 - 包含您希望在其上运行...

    大数据与人工智能-fy.docx

    Yarn是从Hadoop的哪个版本出现的 [单选题] A.1.0 B.2.0(正确答案) C.3.0 D.4.0 大数据与人工智能-fy全文共22页,当前为第3页。13. 下列哪项不属于引入Hive的原因 [单选题] 大数据与人工智能-fy全文共22页,当前为第...

    大数据场景化解决方案.pdf

    Hadoop回收站trash,默认是关闭的,若开启需要修改配置⽂件core-site.xml。 Hive概述 Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。 Hive特性: 灵活⽅便的ETL (Extract/Transform/Load)。 ...

    Spark的架构概述(章节一)

    Spark在做数据的批处理计算,计算性能大约是Hadoop MapReduce的10~100倍,因为Spark使用比较先进的基于DAG 任务调度(有向无环计算),可以将一个任务拆分成若干个阶段,然后将这些阶段分批次交给集群计算节点处理。...

Global site tag (gtag.js) - Google Analytics