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

本文中假设集群中每个节点的配置为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资源使用时, 需要考虑:
- 每个Map和Reduce任务的物理内存限制
- 每个任务的JVM堆栈大小
- 每个任务的虚拟内存
可以设置每个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
原文地址:配置Hadoop2.0的内存资源, 感谢原作者分享。

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

MySQL适合初学者,因为:1)易于安装和配置,2)有丰富的学习资源,3)SQL语法直观,4)工具支持强大。尽管如此,初学者需克服数据库设计、查询优化、安全管理和数据备份等挑战。

是的,sqlisaprogramminglanguges pecialized fordatamanage.1)它具有焦点,focusingonwhattoachieveratherthanhow.2)sqlisessential forquerying forquerying,插入,更新,更新,和detletingdatainrelationalDatabases.3)

ACID属性包括原子性、一致性、隔离性和持久性,是数据库设计的基石。1.原子性确保事务要么完全成功,要么完全失败。2.一致性保证数据库在事务前后保持一致状态。3.隔离性确保事务之间互不干扰。4.持久性确保事务提交后数据永久保存。

MySQL既是数据库管理系统(DBMS),也与编程语言紧密相关。1)作为DBMS,MySQL用于存储、组织和检索数据,优化索引可提高查询性能。2)通过SQL与编程语言结合,嵌入在如Python中,使用ORM工具如SQLAlchemy可简化操作。3)性能优化包括索引、查询、缓存、分库分表和事务管理。

MySQL使用SQL命令管理数据。1.基本命令包括SELECT、INSERT、UPDATE和DELETE。2.高级用法涉及JOIN、子查询和聚合函数。3.常见错误有语法、逻辑和性能问题。4.优化技巧包括使用索引、避免SELECT*和使用LIMIT。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Atom编辑器mac版下载
最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具