Hadoop 1.0和Hadoop2.0区别详解

Hadoop 1.0hadoop2.0结构图

 Hadoop 1.0和Hadoop2.0区别详解_第1张图片

Hadoop2.0对Hadoop1.0中的不足改进:

1、针对Hadoop1.0NameNode制约HDFS的扩展性问题,提出HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时彻底解决了NameNode单点故障问题;

2、针对Hadoop1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现,即引入了资源管理框架Yarn

3、Yarn作为Hadoop2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度,不仅限于MapReduce一种框架,也可以为其他框架使用,如TezSparkStorm

HDFS Federation(namenode Federation)

参考:HDFS Federation机制

https://blog.csdn.net/androidlushangderen/article/details/52135506

 HighAvailability for HDFS

解决HDFS的单点问题。

实现是基于NameNode的主从切换,关键点在于主从NameNode通过一个共享储存同步元数据信息。Hadoop目前提供了NFSQJMBookeeper三种共享储存可选。三种方案中年,NFS本身又存在单点问题,而QJMBookeeper都是分布式系统,不存在单点问题;前者由Cloudera推出,后者由Yahoo推出,相对来说,QJM更简单,更易于维护。

MapReduce计算框架来讲

MapReduce1.0计算框架主要由三部分组成:编程模型、数据处理引擎和运行时环境。它的基本编程模型是将问题抽象成MapReduce两个阶段,其中Map阶段将输入的数据解析成key/value,迭代调用map()函数处理后,再以key/value的形式输出到本地目录,Reduce阶段将key相同的value进行规约处理,并将最终结果写到HDFS上;它的数据处理引擎由MapTaskReduceTask组成,分别负责Map阶段逻辑和Reduce阶段的逻辑处理;它的运行时环境由一个JobTracker和若干个TaskTracker两类服务组成,其中JobTracker负责资源管理和所有作业的控制,TaskTracker负责接收来自JobTracker的命令并执行它。

MapReducer2.0具有与MRv1相同的编程模型和数据处理引擎,唯一不同的是运行时环境。MRv2是在MRv1基础上经加工之后,运行于资源管理框架Yarn之上的计算框架MapReduce。它的运行时环境不再由JobTrackerTaskTracker等服务组成,而是变为通用资源管理系统Yarn和作业控制进程ApplicationMaster,其中Yarn负责资源管理的调度而ApplicationMaster负责作业的管理。

 

你可能感兴趣的:(大数据~Hadoop)