热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HadoopMRv1和MRv2的区别

Hadoop1.0采用的是MRv1版本的MapReduce编程模型对于MRv1 运行时环境:JobTracker和TaskTracker 编程模型:MapReduce 数据

Hadoop1.0采用的是MRv1版本的MapReduce编程模型

对于MRv1
运行时环境:JobTracker和TaskTracker
编程模型:MapReduce
数据处理引擎:Map任务和Reduce任务

这一版本的瓶颈和缺陷:
1、JobTracker既负责资源管理又负责任务调度,如果集群繁忙,JobTracker本身就会成为可扩展性的瓶颈,大大制约计算能力。
2、在这一版本中,TaskTracker将节点的CPU和内存量等量划分为slot,每个slot代表一个计算单元,分为Map slot和Reduce slot,供MapTask和ReduceTask使用。这会造成什么问题?

  • 有些任务用不了整个slot的能力,有些任务使用的slot能力不够用,这就造成了资源使用效率不高。
  • 任务启动之初,MapTask在运行,ReduceTask未调度运行,这个时候Reduce slot被闲置。

3、单节点的Master,没有备用Master和选举操作,这导致了一旦Master失败,集群将不可用。
4、只能使用自身的MapReduce计算框架,无法通过热插拔方式使用其他(如Spark等)计算框架。
5、这一版本的核心是MapReduce,只能跑MapReduce任务。

基于以上的问题和局限,MRv2诞生,对应Hadoop2.0

对于MRv2
运行时环境:ResourceManager(负责通用资源调度)和ApplicationMaster(负责任务调度)
编程模型:MapReduce
数据处理引擎:Map任务和Reduce任务

在这一版本中,核心是YARN,MapReduce是可插拔的,完全可以使用其他的计算框架替代,如Spark、Storm等。

可以看到,在这一版本中JobTracker被替换成了ResourceManager和ApplicationMaster,分别负责对资源的统一调度,和对各计算框架的任务调度。这样一来的好处有:
1、提高了可扩展性,相比于JobTracker本身可能的瓶颈,这里不存在。
2、计算框架可插拔,不管是本身的Hadoop MapReduce、Spark、Storm等都可以,因为任务调度交给了ApplicationMaster,计算框架的任务只需到向ResourceManager申请的资源中去运行即可。
3、资源的使用单位由slot变成container,应用可根据自身需要申请,提高了集群资源的分配和使用效率。

仍然存在的局限:由HDFS的频繁读写导致的磁盘IO决定了其只适合于离线计算。


推荐阅读
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • SparkOnYarn在YARN上启动Spark应用有两种模式。在cluster模式下,Spark驱动器(driver)在YARNApp ... [详细]
  • Hadoop之Yarn
    目录1Hadoop1.x和Hadoop2.x架构区别2Yarn概述3Yarn基本架构4Yarn工作机制5作业提交全过程6资源调度器7任务的推测执行1Hadoop1.x和Hadoo ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • MR程序的几种提交运行模式本地模型运行1在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行-- ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • MapReduce工作流程最详细解释
    MapReduce是我们再进行离线大数据处理的时候经常要使用的计算模型,MapReduce的计算过程被封装的很好,我们只用使用Map和Reduce函数,所以对其整体的计算过程不是太 ... [详细]
  • MapReduce 切片机制源码分析
     总体来说大概有以下2个大的步骤1.连接集群(yarnrunner或者是localjobrunner)2.submitter.submitJobInternal()在该方法中会创建 ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • Yarn已过时!Kubeflow实现机器学习调度平台才是未来
    来源:AI前线本文约6700字,建议阅读10分钟。本文分析了建设分布式训练平台的过程中的痛点所在,为你介绍Kubeflow与其核心组件及其 ... [详细]
author-avatar
手机用户2502904457
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有