MapReduce 在hadoop 0.23版本中经历了一次大修改。现在叫做MapReduce 2.0 (MRv2) 或者 YARN。
JobTracker在MRv2 中被拆分成了两个主要的功能使用守护进程执行:资源管理和任务的调度与监视。这个想法创建一个全局的资源管理(global ResourceManager (RM))和为每个应用创建一个应用管理(ApplicationMaster (AM))。一个应用可以使一个MR jobs的经典场景或者是一串连续的jobs。
ResourceManager 和每个slave节点的NodeManager (NM)构成一个资源估算框架。ResourceManager 对在系统中所有应用的资源分配拥有最终的最高级别仲裁权。
实际上每个应用的ApplicationMaster(AM)是资源估算框架具体用到的lib包,被用来和ResourceManager 进行资源谈判,并且为NodeManager执行和监控task。
ResourceManager 拥有两个主要的组件:调度器(Scheduler) 和资源管理器(ApplicationsManager)
调度器负责为正在执行的各种各样的熟悉容量约束和队列的 applications subject 分配资源。感觉上调度器只是纯粹的调度程序而并不去监视和追踪application执行的状态。所以它并不会去重启失败的任务或处理失败的application或者是硬件错误引起的问题。调度器的调度程序是基于application要求的资源来执行的。调度器也不会基于一个资源容器(内存,CPU,硬盘,网络带宽)的概念来调度,在目前的版本里,它只是基于内存的调度。
调度器支持可插拔的策略负责对集群中各种各样的队列和应用进行资源分配。在当前版本中Map-Reduce的调度器,例如CapacityScheduler 和 FairScheduler 是一些可插拔的例子。
CapacityScheduler 支持hierarchical queues,所以它可以根据预判来分配集群资源。
ApplicationsManager 负责接收 job-submissions,与第一个container谈判用哪个ApplicationMaster 来执行application ,为失败的ApplicationMaster container提供重启服务。
NodeManager 是每个节点的代理对container负责,监控它们的资源使用情况(内存,CPU,硬盘,网络带宽),给 ResourceManager/Scheduler提交报告。
每个应用的ApplicationMaster 负责与调度器谈判资源占用的containers数量,追踪状态和监控进程。
MRV2 与 之前版本(hadoop-0.20.205)保持兼容。这意味着所有的job只需要重新编译而不做任何修改就可以在MRv2 上运行。
分享到:
相关推荐
- **新API**:MRV2引入了新的编程接口,如`org.apache.hadoop.mapreduce.Job`,`org.apache.hadoop.mapreduce.Mapper`和`org.apache.hadoop.mapreduce.Reducer`,取代了旧的`mapred`包中的类。 为了优化Reduce Join...
Hadoop 2.0是Apache Hadoop项目的一个重要版本,它带来了许多改进和优化,显著提高了大数据处理的性能和可扩展性。这个压缩包“Hadoop 2.0部署配置文件示例.zip”包含了用于配置和部署Hadoop集群的关键文件。下面...
4. **MapReduce 2.0**:MapReduce 2.0(MRv2)作为YARN的一部分,实现了任务的细粒度管理和更好的资源调度,使得作业执行更高效。 5. **Hadoop生态系统**:除了核心组件外,Hadoop生态还包括一系列工具,如Pig、Hue...
最后,对于MapReduce本身的单点故障问题,Hadoop 2.0引入了两种MapReduce实现:MRv1和MRv2(又称YARN上的MapReduce)。在MRv1中,JobTracker是单点故障,但在MRv2中,JobTracker被替换为ApplicationMaster,每个应用...
2. **MapReduce 2.0(MRv2)**:在Hadoop 2.4.0中,MapReduce得到了升级,称为MapReduce 2.0或YARN-based MapReduce。MRv2将JobTracker的功能分解为ApplicationMaster(AM)和ResourceManager,AM负责应用级别的任务...
修修补补的成本也越来越高,早在2011年开发人员就开始了对MapReduce模块进行重构,并称重构后的MapReduce为MRv2,也称Yarn。重构后的MapReduce(即Yarn)和增强功能后的Hdfs,公共组件Common合称Hadoop2.0。
3. **MapReduce v2(MRv2)**:MapReduce的第二个版本,它与YARN紧密集成,使得MapReduce作业可以与其他大数据处理框架共存,提高了系统的并行处理能力。 4. **HBase**:Hadoop 2.0家族中的NoSQL数据库,提供实时...
综上所述,Hadoop2.0在HDFS、MapReduce和YARN等方面都进行了重大的改进和优化,不仅解决了Hadoop1.0中的许多局限性,还极大地提升了系统的可扩展性、可靠性和资源利用率,为大数据处理领域带来了新的突破。
在大数据处理中,除了Hadoop MapReduce(MRv2)外,还有其他计算框架如Storm(实时流处理)、Spark(内存计算)和Impala(快速查询)。这些框架各有优势,如Spark通过内存计算大幅提高处理速度,而Impala利用自己的...
随着Hadoop的发展,YARN(Yet Another Resource Negotiator)取代了JobTracker,负责集群资源管理和任务调度,而MapReduce的职责被拆分为两个部分:MRv2(MapReduce 2.0)的ApplicationMaster负责任务管理和协调,而...
5. **Hadoop MapReduce v2 (MRv2)**:在YARN上运行的MapReduce框架,提供更好的资源管理和任务调度能力,增强了系统性能。 6. **Hadoop Oozie**:一个工作流调度系统,用于管理Hadoop作业和其他系统的任务,如Pig、...
在YARN出现之前,Hadoop主要依赖于MRv1(MapReduce版本1)架构来处理任务。MRv1架构将Hadoop集群分为两大抽象实体:MapReduce引擎和分布式文件系统HDFS。MapReduce引擎负责执行Map和Reduce任务并报告结果,而HDFS则...
为解决这些问题,Apache社区启动了下一代MapReduce框架的开发,即所谓的MRv2或YARN(Yet Another Resource Negotiator)。 在MapReduce框架的发展背景下,Hadoop社区意识到需要对现有的基础设施进行根本性的重构以...
5. **Hadoop MRv1 (MapReduce v1)**:早期的MapReduce实现,现在已经逐渐被YARN上的MRv2(也称为YARN-based MapReduce)取代,但仍然在某些场景下使用。对应的JAR包包括`hadoop-mapreduce-client-core-*.jar`等。 6...
Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop项目中的一个核心组件,它的设计目标是解决早期Hadoop 1.x版本中MapReduce(MRv1)存在的问题,包括扩展性限制、单点故障以及对其他计算框架支持不足...
4. YARN(Yet Another Resource Negotiator):介绍从Hadoop 2.x开始引入的新资源管理框架YARN,以及它对MapReduce的影响和改进。 5. 新版MapReduce:分析Hadoop 2.x及后续版本中的MapReduce2(MRv2)改进,如新引入...
随着时间的推移,MapReduce经历了两次主要的版本升级,即MapReduce V1(MRv1)和MapReduce V2(MRv2,也称为YARN)。这两个版本在API设计和执行模型上有所不同,影响了开发人员的工作流程和系统性能。下面将详细讨论...
5. **Hadoop MRv1 (MapReduce v1)**: 虽然MRv2是主流,但为了向后兼容,Hadoop 2.7.6仍然保留了MRv1的源代码,用户可以根据需求选择使用。 6. **Hadoop Ozone**: Ozone是Hadoop的分布式对象存储系统,旨在提供低...