1. Hadoop的起源:
Hadoop最早起源于Nutch。Nutch在构建大型的具有网页抓取、索引 、查询等功能的全网搜索引擎时,随着抓取网页数量的增加,遇到了严重的可扩展问题----如何解决大量网页的存储和索引问题。
2003年、2004年谷歌发表的两篇论文:分布式文件系统(GFS),可用于存储海量网页的存储;分布式计算框架(MAPREDUCE),可用于处理海量网页的索引计算问题。 Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP。
2. Hadoop是什么
Hadoop是由Apache基金会所开发的分布式系统基础架构。可安装在商用机器集群中,使机器可以彼此通信协同工作,以高度分布式的方式共同存储和处理大量数据。
3.Hadoop2.x架构模型
3.1 单节点架构模型
(1)HDFS文件存储系统:高可靠、高吞吐量的分布式文件系统
nameNode:主节点,主要用于维护、管理元数据信息( 元数据信息:描述数据的数据)
SecondaryNamenode:辅助nameNode管理元数据信息
DataNode :存储各种各样的数据
(2)YARN资源调度系统:(2.x新增系统,新的MapReduce框架。负责集群的资源管理和任务调度,使得多种计算框架可以运行在一个集群中)
resourceManager:接收用户的计算请求任务,并负责集群的资源(CPU、内存、网络、磁盘等)分配
AppMaster:resourceManager为每个计算任务启动一个AppMaster,AppMaster负责这个任务的分配,资源的申请。
NodeManager:接收AppMaster分配的任务
(3)MAPREDUCE计算框架:分布式的离线并行计算框架
JobTracker:接收用户的计算请求任务,并分配任务给从节点
TaskTracker:负责执行主节点JobTracker分配的任务
3.2 NameNode与ResourceManager高可用架构模型
JournalNode:文件系统元数据信息管理。当NameNode高可用时,不存在SecondaryNameNode,取而代之的时是JournalNode:主要用于同步元数据信息,保证各个节点的元数据信息一致。并且JournalNode需要奇数个,半数及以上的JournalNode写入元数据成功。就代表写入成功。
NameNode Active状态:主要负责用户的写请求。
NameNode StandBy状态:观察Active的状态,若NameNode Active状态失效,立马切换到Active状态
ZKFC: 守护进程ZKFC实现nameNode高可用的自动切换。