MapReduce2.0架构,如何重塑产品架构以适应新一代大数据处理需求?

mapreduce2.0 架构,又称yarn,是hadoop的新一代计算资源管理平台,提供更高效的资源调度和任务管理。

MapReduce2.0架构_产品架构

MapReduce2.0架构,如何重塑产品架构以适应新一代大数据处理需求?

MapReduce是一个用于数据处理的编程模型,专为并行处理大数据而设计,其核心思想是将任务分为两个阶段:Map阶段和Reduce阶段,每个阶段的输入输出都是键值对的形式,Map阶段对切分好的数据进行并行处理,处理结果传输给Reduce阶段,由Reduce函数完成最后的汇总,在MapReduce 2.0中,这一架构得到了进一步优化和扩展。

MapReduce 2.0架构概述

MapReduce 2.0可以理解为一个jar包或一个程序,这个程序要运行在YARN(Yet Another Resource Negotiator)上面,YARN是Hadoop 2.x中的资源管理和作业调度框架,它提供了更高效、更可靠的资源管理方式,在YARN上,MapReduce 2.0主要由以下几个组件构成:

1、ResourceManager(RM):负责整个集群的资源管理和作业调度,RM包含两个重要模块:Application Manager(应用程序管理器)和Scheduler(调度器)。

Application Manager:主要负责接收作业提交,协商获取第一个容器来执行应用程序的ApplicationMaster(AM),并提供在故障时重新启动AM的服务。

Scheduler:根据容量、队列等限制条件将系统中的资源分配给各个正在运行的应用,Scheduler是一个“纯调度器”,它不负责监控或者跟踪应用的执行状态,也不保证会重启由于应用执行失败或者硬件故障产生的失败任务。

2、NodeManager(NM):每个节点上的框架代理,主要负责启动应用所需的容器,监视它们的资源使用情况(CPU、内存、磁盘、网络等),并将其报告给ResourceManager的Scheduler。

3、ApplicationMaster(AM):每个应用程序的AM是一个框架库,负责与Scheduler协商合适的资源容器以及与NodeManager一起跟踪它们的状态并监视进度,对于MapReduce作业来说,AM实际上是一个具体的框架库,它的任务是与RM协商获取应用所需资源,并与NM合作完成执行和监控task的任务。

MapReduce2.0架构,如何重塑产品架构以适应新一代大数据处理需求?

4、Container:是YARN中的资源抽象,它将内存、CPU、磁盘、网络等资源封装在一起,从而限定每个任务使用的资源量,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。

MapReduce 2.0工作流程

MapReduce 2.0的工作流程可以概括为以下几个步骤:

1、作业提交:用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。

2、资源分配:ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的AM。

3、AM注册:AM首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,它将为各个任务申请资源,并监控它们的运行状态,直到运行结束。

4、任务申请与启动:AM采用轮询的方式通过RPC协议向ResourceManager申请和领取资源,一旦AM申请到资源后,便与对应的NodeManager通信,要求它启动任务。

5、任务执行:NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。

MapReduce2.0架构,如何重塑产品架构以适应新一代大数据处理需求?

6、状态汇报:各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务,在应用程序运行过程中,用户可随时通过RPC向AM查询应用程序的当前运行状态。

7、作业完成:应用程序运行完成后,AM向ResourceManager注销并关闭自己。

相关问答FAQs

问:MapReduce 2.0相比1.0有哪些改进?

答:MapReduce 2.0相比1.0的主要改进在于资源管理和作业调度的分离,在MapReduce 1.x中,JobTracker既负责资源管理又负责作业调度,存在单点故障问题,且资源消耗过大,而在MapReduce 2.0中,这两个功能被拆分为独立的进程:全局的ResourceManager和每个应用特有的ApplicationMaster,这种设计提高了系统的可靠性和扩展性,使得ResourceManager不再成为性能瓶颈。

问:MapReduce 2.0如何确保高可用性和容错性?

答:MapReduce 2.0通过多个机制确保高可用性和容错性,ResourceManager可以部署在高可用模式下,以避免单点故障,如果ApplicationMaster失败,ResourceManager会检测到失败并重新启动AM,每个任务都有心跳机制来汇报其运行状态,如果任务失败,AM可以重新调度该任务到其他节点执行,这些机制共同保证了MapReduce 2.0的高可用性和容错性。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1237924.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-25 04:50
下一篇 2024-10-25 04:52

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入