一、什么是Hadoop
- 是一个由Apache基金会所开发的分布式系统基础架构。
- 主要解决海量数据的存储和海量数据的分析计算问题。
- 广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
二、Hadoop发展历史
- Hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
- 2003年、2004年**谷歌发表的两篇论文为该问题提供了可行的解决方案**。 ——分布式文件系统(GFS),可用于处理海量网页的**存储** ——分布式计算框架MAPREDUCE,可用于处理海量网页的**索引计算**问题
- Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目(同年,cloudera公司成立),迎来了它的快速发展期。
三、Hadoop的四大特性(优点)
- 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理的速度。
- 高容错性:能够自动将失败的任务重新分配
四、Hadoop的历史版本以及框架介绍
- 0.x系列版本:hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本。
- 1.x版本系列:hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等。
- 2.x版本系列:架构产生重大变化,引入了yarn平台等许多新特性。
1.X版本架构模型
NameNode与ResourceManager单节点架构模型
#文件系统核心模块:
- NameNode:集群当中的主节点,主要用于管理集群当中的各种数据。
- secondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理。
- DataNode:集群当中的从节点,主要用于存储集群当中的各种数据。
- ResourceManager:接收用户的计算请求任务,并负责集群的资源分配,以及计算任务的划分。
- NodeManager:负责执行主节点ResourceManager分配的任务。
2.X版本架构模型
NameNode与ResourceManager高可用架构模型
#文件系统核心模块:
- NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,一般都是使用两个,实现HA高可用。
- JournalNode:元数据信息管理进程,一般都是奇数个。
- DataNode:从节点,用于数据的存储。
- ResourceManager:Yarn平台的主节点,主要用于接收各种任务,通过两个,构建成高可用。
- NodeManager:Yarn平台的从节点,主要用于处理ResourceManager分配的任务。
五、Hadoop组成
1、HDFS(Hadoop Distributed File System)的架构概述
2、YARN架构概述
- **在Hadoop1.x版本中有HDFS和MapReduce两个架构,而在2.x版本中加入了Yarn架构来分担MapReduce的需求,降低了资源的耦合性。**
3、MapReduce架构概述
MapReduce将计算过程分为两个阶段:- Map阶段并行处理输入数据。
- Reduce阶段对Map结果进行汇总。