热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

配置Hadoop2.0的内存资源

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

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


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

Screen Shot 2014-05-24 at 上午11.43.46YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供处理能力, Container是YARN中处理能力的基本单元, 是对内存, CPU等的封装.

本文中假设集群中每个节点的配置为48G内存, 12个硬盘, 2个hex core CPU(12 核).

1. 配置YARN


在Hadoop集群中, 平衡内存, CPU等的使用很重要, 这样才能避免整个集群的计算能力不会因为某种资源而受限. 根据Hortonworks的推荐, 每个硬盘和核1-2个Container能够达到最好的集群使用平衡. 如果集群的每个节点有12个硬盘和12个核, 那么每个节点上最好最多20个Container.

因为每个节点有48G内存, 我们为操作系统保留部分内存, 所以分配40G内存给YARN, 8G留给操作系统. 下面配置的是每个节点上YARN可以使用的最大内存.

在yarn-site.xml中
yarn.nodemanager.resource.memory-mb
40960

然后需要配置如何把这些资源分配给Container, 可以配置分配给Container的最小内存, 因为我们允许每个节点最多20个Container, 所以每个Container的内存为40G / 20 = 2G

在yarn-site.xml中
yarn.scheduler.minimum-allocation-mb
2048


2. ?配置MapReduce2


MapReduce2构建在YARN的基础之上, 使用YARN的Container来调度和运行其map和reduce任务.

在配置YARN上的MapReduce资源使用时, 需要考虑:
  1. 每个Map和Reduce任务的物理内存限制
  2. 每个任务的JVM堆栈大小
  3. 每个任务的虚拟内存

可以设置每个map和reduce任务的最大内存, 该值应该大于等于Container的最小内存. 比如前面我们设置每个Container的最小内存(yarn.scheduler.minimum-allocation-mb)为2GB, 所以我们可以设置map任务的内存为4GB, reduce任务的内存为8GB:

在mapred-site.xml中
mapreduce.map.memory.mb
4096
mapreduce.reduce.memory.mb
8192

每个Container会为每个map和reduce任务运行一个JVM, JVM的堆栈大小应该小于map和reduce的内存大小:

在mapred-site.xml中
mapreduce.map.java.opts
-Xmx3072m
mapreduce.reduce.java.opts
-Xmx6144m

前面设置的是map和reduce任务可以使用的物理内存, 而虚拟内存(物理内存+paged memory)的上限是由每个Container的虚拟内存比例决定的, 默认值为2.1:

在yarn-site.xml中:
yarn.nodemanager.vmem-pmem-ratio
2.1

根据之前的所有设置, 每个map任务的内存分配为
  • 物理内存 = 4GB
  • map任务的Container的JVM堆栈 = 3GB
  • 虚拟内存大小 = 4 * 2.1 = 8.4GB

在YARN和MapReduce2中, 除此之外没有其他的map和reduce任务的资源预配置. 整个集群可以根据作业的需要动态的分配map和reduce, 比如在本例中, YARN会配置最多10(40/4)个mapper或者5(40/8)个reducer, 或者是其他合适的组合.



参考文献:

[1].?How to Plan and Configure YARN and MapReduce 2 in HDP 2.0


推荐阅读
  • hadoop3.1.2 first programdefault wordcount (Mac)
    hadoop3.1.2安装完成后的第一个实操示例程 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • 【clienteclipse集群提交运行】:客户端eclipse集群提交mapreduce代码1.需求:在master:8088上,有客户 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 如何提升Python处理约1GB数据集时的运行效率?
    如何提升Python处理约1GB数据集时的运行效率?本文探讨了在后端开发中使用Python处理大规模数据集的优化方法。通过分析常见的性能瓶颈,介绍了多种提高数据处理速度的技术,包括使用高效的数据结构、并行计算、内存管理和代码优化策略。此外,文章还提供了在Ubuntu环境下配置和测试这些优化方案的具体步骤,适用于从事推荐系统等领域的开发者。 ... [详细]
  • 前期部署1.JDK安装,配置PATH2.下载spark-1.6.1-bin-hadoop2.6.tgz,并上传到服务器解压3.在 usr 下创建软链接到目标文件夹4.修改配置文件, ... [详细]
  • hive和mysql的区别是什么[mysql教程]
    hive和mysql的区别有:1、查询语言不同,hive是hql语言,MySQL是sql语句;2、数据存储位置不同,hive把数据存储在hdfs上,MySQL把数据存储在自己的系统 ... [详细]
  • Hadoop——实验七:MapReduce编程实践
    文章目录一.实验目的二.实验内容三.实验步骤及结果分析 1.基于ubuntukylin14.04(7)版本,安装hadoop-eclipse-kepler-plugi ... [详细]
  • Hadoop的分布式架构改进与应用
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 阿里云大数据计算服务MaxCompute (原名 ODPS)
     MaxCompute是阿里EB级计算平台,经过十年磨砺,它成为阿里巴巴集团数据中台的计算核心和阿里云大数据的基础服务。去年MaxCompute做了哪些工作,这些工作背后的原因是什 ... [详细]
  • 本文整理了Java中org.apache.hadoop.mapreduce.lib.input.MultipleInputs.addInputPath()方法的一些代码 ... [详细]
  • MapReduce统计每个用户的使用总流量
    1、原始数据2、使用java程序1)新建项目2)导包  hadoop-2.7.3\share\hadoop\mapreducehsfs的那些包commo ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
author-avatar
手机用户2602935405
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有