在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考虑资源调度. 如下图所示
YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供处理能力, Container是YARN中处理能力的基本单元, 是对内存, CPU等的封装.
目前我这里的服务器情况:6台slave,每台:32G内存,2*6核CPU。
由于hadoop 1.x存在JobTracker和TaskTracker,资源管理有它们实现,在执行mapreduce作业时,资源分为map task和reduce task。所有存在下面两个参数分别设置每个TaskTracker可以运行的任务数:
<property> <name>mapred.tasktracker.map.tasks.maximum</name> <value>6</value> <description><![CDATA[CPU数量=服务器CPU总核数 / 每个CPU的核数;服务器CPU总核数 = more /proc/cpuinfo | grep 'processor' | wc -l;每个CPU的核数 = more /proc/cpui nfo | grep 'cpu cores']]></description> </property> <property> <name>mapred.tasktracker.reduce.tasks.maximum</name> <value>4</value> <description>一个task tracker最多可以同时运行的reduce任务数量</description> </property>
但是在hadoop 2.x中,引入了Yarn架构做资源管理,在每个节点上面运行NodeManager负责节点资源的分配,而slot也不再像1.x那样区分Map slot和Reduce slot。在Yarn上面Container是资源的分配的最小单元。
Yarn集群的内存分配配置在yarn-site.xml文件中配置:
<property> <name>yarn.nodemanager.resource.memory-mb</name> <value>22528</value> <discription>每个节点可用内存,单位MB</discription> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>1500</value> <discription>单个任务可申请最少内存,默认1024MB</discription> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>16384</value> <discription>单个任务可申请最大内存,默认8192MB</discription> </property>
由于我Yarn集群还需要跑Spark的任务,而Spark的Worker内存相对需要大些,所以需要调大单个任务的最大内存(默认为8G)。
而Mapreduce的任务的内存配置:
<property> <name>mapreduce.map.memory.mb</name> <value>1500</value> <description>每个Map任务的物理内存限制</description> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>3000</value> <description>每个Reduce任务的物理内存限制</description> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx1200m</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx2600m</value> </property>
mapreduce.map.memory.mb:每个map任务的内存,应该是大于或者等于Container的最小内存。
按照上面的配置:每个slave可以运行map的数据<= 22528/1500,reduce任务的数量<=22528/3000
相关推荐
Yarn的内存和CPU配置宝典 ,帮助你理解并解决配置问题,优化配置
关于Yarn内存分配与管理,主要涉及到了ResourceManage、ApplicationMatser、NodeManager这几个概念,相关的优化也要紧紧围绕着这几方面来开展。这里还有一个Container的概念,现在可以先把它理解为运行map/reduce ...
23、hadoop集群中yarn运行mapreduce的内存、CPU分配调度计算与优化 网址:https://blog.csdn.net/chenwewi520feng/article/details/130457270 本文介绍在hadoop集群中,不适用默认的参数情况下,yarn的cpu和内容配置...
YARN是Hadoop的一个分布式的资源管理系统,用来提高分布式集群的内存、I/O、网络、磁盘等资源的...实验表明,在YARN的容量调度器和公平调度器的基础上使用该方法,相比于默认配置,MR作业完成时间分别减少53%和14%左右.
Cloudera Hadoop 5&Hadoop高阶管理及调优课程,完整版,提供课件...2、搭建本地Yum部署CDH5的重要组件和优化配置 3、Impala、Oozie和Hue的部署、使用操作及调优 4、Hadoop安全认证及授权管理 5、Hadoop各组件性能调优
一、Hadoop基础 1、分布式概念 2、Hadoop特性 3、Hadoop四大核心模块介绍 4、Hadoop HDFS构架解析 ...2、内存、CPU资源 四、MapReduce编程 五、MapReduce的优化 六、基于Zookeeper的HA 七、MapReduce经典案例 。 。 。
7.Spark on YARN 8.应用部署模式DeployMode 第二章、SparkCore 模块 1.RDD 概念及特性 2.RDD 创建 3.RDD 函数及使用 4.RDD 持久化 5.案例:SogouQ日志分析 6.RDD Checkpoint 7.外部数据源(HBase和MySQL) 8.广播...
它的特点是基于内存计算,⽀持各类资源管理平台,其中以YARN最为常 见,同时⼜与Hadoop平台集成,在集群节点以HDFS作为分布式⽂件存储系统。 我们可以先看⼀下搭建⼀个常见的Apache Spark⼤数据平台需要哪些步骤: 1...
8.1. 配置tomcat的环境变量和内存设置 29 8.2. 服务自启动 30 9. Mysql 30 9.1. 离线安装 30 9.2. 在线安装 30 9.2.1. 检测系统是否自带安装mysql 30 9.2.2. 下载yum包 30 9.2.3. 安装mysql 30 9.2.4. 启动服务 30 ...
仅在组件靠近视口时才渲染它们,从而优化您的React应用程序。 目录 介绍 该库使您能够创建“虚拟容器”,仅当“虚拟容器”在视口的给定范围内时,它的子级才会被渲染。这为您提供了一种很好的机制,可以通过这种机制...
2、通过对 Linux ⽂件系统、(⼤数据学习群142974151】内核参数、内存结构、以及 Java 虚 拟机等相关知识的学习,为后续学习分布式 ⽂件系统, Hadoop 集群优化扫清操作系统层 ⾯知识的障碍 2 Hadoop 由许多元素...