`

YARN内存使用优化配置

阅读更多

在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考虑资源调度. 如下图所示

Screen Shot 2014-05-24 at 上午11.43.46YARN会管理集群中所有机器的可用计算资源. 基于这些资源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
1
0
分享到:
评论
1 楼 dextersmake 2015-04-13  
我的配置和你的差不多,调了有一些效果,但是还不是很满意。

相关推荐

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

    综上所述,YARN内存管理的优化需要综合考虑RM、NM和AM的角色及它们的配置参数,确保资源有效利用,同时避免内存不足或溢出导致的问题。在实际操作中,需根据应用需求和集群资源状况合理调整这些参数,以实现最佳性能...

    yarn内存和CPU配置

    ### YARN内存与CPU配置详解 #### 一、引言 Apache Hadoop YARN(Yet Another Resource Negotiator)作为新一代的资源管理和任务调度框架,在大数据处理领域占据着重要的地位。YARN不仅支持内存资源的调度,还支持...

    hadoop yarn优化配置项生成工具

    这里提到的"hadop yarn优化配置项生成工具"是一个实用的脚本工具,用于根据特定的硬件环境和工作负载生成优化的YARN配置参数。这个工具基于Python编写,名为`yarn-utils.py`。 要使用这个工具,首先确保你的系统...

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

    - 对于内存敏感的应用,可以设置溢写策略,如使用MapReduce的`mapreduce.task.io.sort.mb`和`io.sort.factor`来控制排序阶段的内存使用。 总之,理解和优化YARN的内存和CPU分配是提升Hadoop集群效率的关键。通过...

    Spark on Yarn之Executor内存管理 - 简书1

    如果Executor在运行过程中实际使用的内存超出上限,YARN会终止Executor进程。 2.1 **Executor可用内存总量** Executor的总内存包括Heap内存和Off-Heap内存。Heap内存由`spark.executor.memory`指定,Spark对Heap...

    09. Yarn以及Hadoop优化.docx

    若要切换为FIFO调度器,需要在`yarn-site.xml`中设置`yarn.resourcemanager.scheduler.class`属性为`org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler`,并重新启动HDFS和Yarn集群。...

    java提交spark任务到yarn平台的配置讲解共9页.pdf.zip

    在提交Spark任务前,需要配置Spark的相关属性,如`spark.master`设置为`yarn-client`或`yarn-cluster`,前者用于客户端模式,后者用于集群模式。此外,还需指定Hadoop的配置目录,例如`spark.yarn.conf.archive`。 ...

    Yarn常见问题维护手册V1.01

    除了调整内存配置,还可以优化代码,减少内存消耗,或者考虑使用更高效的算法。 - `[YARN-20003]` 集群资源足够时,大量任务处于 Accepted 状态:这可能是由于调度策略或队列设置问题。检查 RM 的调度器配置,如...

    YARN学习书籍及注解

    通过深入学习"YARN学习书籍及注解",读者可以全面了解YARN的工作原理,掌握如何配置和管理YARN集群,以及如何针对特定应用场景进行优化,这对于从事大数据处理和分析的工程师来说是非常宝贵的技能。

    yarn架构与讲解

    - **mapreduce.map.memory.mb** 和 **mapreduce.reduce.memory.mb**:分别设置Map和Reduce任务可用的最大内存。 #### 五、Shuffle过程中的优化策略 - **减少磁盘I/O**:通过增加内存缓冲区大小或调整溢写阈值,...

    YARN Essentials.PDF

    - **容器配置:** 可以通过配置文件来设置容器的最大内存、CPU 核心数等参数。 **2. 调度策略配置:** - **FIFO 调度器配置:** 设置默认的调度策略为 FIFO。 - **容量调度器配置:** 定义队列及其优先级、最大资源...

    Yarn的操作.pdf

    在配置SparkSQL任务时,我们需要注意Core与内存比例的设置。如果不指定Executor的核心数,可能导致多数Executor空闲。解决办法是指定Executor的核心数,例如设置为4,可以避免 Executor 空闲的情况。此外,我们还...

    CDH参数优化.doc

    **2.2 YARN内存配置** - **节点管理器可用内存总量**: - `yarn.nodemanager.resource.memory-mb`:设置为150000MB(150GB),确保有足够的内存资源分配给YARN容器。 - **Container内存范围**: - 最小值:`yarn....

    Hadoop Yarn - Apache - Cloudera - APIs

    本文将根据提供的文件内容,详细介绍如何通过一系列步骤来优化Hadoop YARN,包括工作主机配置、集群规模规划以及MapReduce配置等,并简要介绍如何使用YARN REST API进行监控和管理。 #### 二、YARN调优概览 YARN...

    jdk1.8+yarn-1.22.10.tar.gz

    接着,需要更新Hadoop配置文件(如`yarn-site.xml`和`core-site.xml`),配置YARN的相关参数,如内存和CPU的分配策略。最后,启动YARN服务,确保所有节点都能正常通信。 总之,JDK 1.8和YARN 1.22.10的结合,为基于...

    YARN线上动态资源调优.doc

    - **yarn.nodemanager.resource.cpu-vcores**:设置为16,允许每个节点分配16个虚拟CPU核心给YARN使用。 - **yarn.scheduler.maximum-allocation-vcores** 和 **yarn.scheduler.minimum-allocation-vcores**:分别...

    Hadoop技术内幕深入解析YARN架构设计与实现原理.董西成

    同时,对于内存溢出问题,可以通过调整YARN的内存配置参数来避免。 总的来说,《Hadoop技术内幕深入解析YARN架构设计与实现原理》这本书是学习和理解YARN的宝贵资料,它不仅介绍了YARN的基本概念,还深入探讨了其...

    基于Yarn的淘宝海量数据服务平台

    - 根据具体业务场景,调整Yarn的配置参数,如心跳间隔、队列设置等,优化系统性能。 - 对应用程序进行优化,如合理设置AM内存、优化数据局部性等。 通过《基于Yarn的淘宝海量数据服务平台》这篇内容,我们可以...

Global site tag (gtag.js) - Google Analytics