更新时间:2021年04月14日17时32分 来源:传智教育 浏览次数:
Hadoop发行版本分为开源社区版和商业版,社区版是指由Apache软件基金会维护的版本,是官方维护的版本体系。商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,例如比较著名的有Cloudera公司的CDH版本。
为了方便学习,本书采用开源社区版,而Hadoop自诞生以来,主要分为Hadoop1、Hadoop2、Hadoop3三个系列的多个版本。由于目前市场上最主流的是Hadoop2.x版本,因此,本书只针对Hadoop2.x版本进行相关介绍。
Hadoop2.x版本指的是第2代Hadoop,它是从Hadoop1.x发展而来的,并且相对于Hadoop1.x来说,有很多改进。下面我们从Hadoop1.x到Hadoop2.x发展的角度,对两版本进行讲解,如图1所示。
图1 Hadoop版本内核演变
通过图1可以看出,Hadoop1.0内核主要由分布式存储系统玄武游戏大厅和分布式计算框架玄武游戏大厅两个系统组成,而Hadoop2.x版本主要新增了资源管理框架Yarn以及其他工作机制的改变。
在Hadoop1.x版本中,玄武游戏大厅与玄武游戏大厅结构如图2和3所示。
图2 玄武游戏大厅组成结构
图3 玄武游戏大厅组成结构
从图2可以看出,玄武游戏大厅由一个NameNode和多个DateNode组成,其中,DataNode负责存储数据,但是数据具体存储到哪个DataNode节点,则是由NameNode来决定的。
从图3可以看出玄武游戏大厅由一个JobTracker和多个TaskTracker组成,其中,玄武游戏大厅的主节点JobTracker只有一个,从节点TaskTracker有很多个,JobTracker与TaskTracker在玄武游戏大厅中的角色就像是项目经理与开发人员的关系,而JobTracker负责接收用户提交的计算任务、将计算任务分配给TaskTracker执行、跟踪,JobTracker同时监控TaskTracker的任务执行状况等。当然,TaskTracker只负责执行JobTracker分配的计算任务,正是由于这种机制,Hadoop1.x架构中的玄武游戏大厅和玄武游戏大厅存在以下缺陷:
(1)玄武游戏大厅中的NameNode、SecondaryNode单点故障,风险是比较大的。其次,NameNode内存受限不好扩展,因为Hadoop1.x版本中的玄武游戏大厅只有一个NameNode,并且要管理所有的DataNode。
(2)玄武游戏大厅中的JobTracker职责过多,访问压力太大,会影响系统稳定。除此之外,玄武游戏大厅难以支持除自身以外的框架,扩展性较低的不足。
Hadoop2.x版本为克服Hadoop1.x中的不足,对其架构进行了以下改进:
(1)Hadoop2.x可以同时启动多个NameNode,其中一个处于工作(Active)状态,另一个处于随时待命(Standby)状态,这种机制被称为Hadoop HA(Hadoop高可用),这样当一个NameNode所在的服务器宕机时,可以在数据不丢失的情况下,自动切换到另一个NameNode持续提供服务。
(2)Hadoop2.x将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现,即引入了资源管理框架Yarn,它是一个通用的资源管理框架,可以为各类应用程序进行资源管理和调度,不仅限于玄武游戏大厅一种框架,也可以为其他框架使用,如Tez、Spark、Storm,这种设计不仅能够增强不同计算模型和各种应用之间的交互,使集群资源得到高效利用,而且能更好地与企业中已经存在的计算结构集成在一起。
(3)Hadoop2.x中的玄武游戏大厅是运行在Yarn上的离线处理框架,它的运行环境不再由JobTracker和TaskTracker等服务组成,而是变成通用资源管理Yarn和作业控制进程ApplicationMaster,从而使玄武游戏大厅在速度上和可用性上都有很大的提高。
猜你喜欢: