Hadoop的介绍以及发展历史
Hadoop之父Doug Cutting :
咳咳,开始讲解Hadoop,各位同学请认真听讲
1. Hadoop最早起源于lucene
下的Nutch
。Nutch
的设计目标是构建一个大型的全网搜索引擎
包括网页抓取、索引、查询
等功能但随着抓取网页数量的增加
遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题
2. 2003年,2004年谷歌发表的三篇论文为该问题提供了可行的解决方案。
- ——
分布式文件系统(GFS),可用于处理海量网页的存储
- ——
分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题
- ——
分布式的结构化数据存储系统Bigtable,用来处理海量结构化数据
3. Doug Cutting
基于这三篇论文完成了相应的开源实现HDFS
和MAPREDUCE
,并从Nutch
中剥离成为独立项目HADOOP
,到2008年1月,HADOOP成为Apache顶级项目
(同年,cloudera公司成立),迎来了它的快速发展期。
为什么叫Hadoop
? Logo
为什么是黄色的大象?
狭义上来说,Hadoop就是单独指代Hadoop这个软件(HDFS+MAPREDUCE)
广义上来说,Hadoop指代大数据的一个生态圈(Hadoop生态圈),包括很多其他的软件
Hadoop的历史版本介绍
0.x系列版本:Hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本
1.x版本系列:Hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等
2.x版本系列:架构产生重大变化,引入了yarn平台等许多新特性
Hadoop三大公司发型版本介绍
目标:了解最出名的三个Hadoop版本
免费开源版本 apache👈点击进入官网
优点:拥有全世界的开源贡献者,代码更新迭代版本比较快
缺点:版本的升级,版本的维护,版本的兼容性,版本的补丁都可能考虑不太周到,学习可以用,实际生产工作环境尽量不要使用
apache所有软件的下载地址(包括各种历史版本)👈点击进入
免费开源版本hortonWorks👈点击进入官网
hortonworks
主要是雅虎主导Hadoop开发的副总裁
,带领二十几个核心成员成立Hortonworks,核心产品软件HDP(ambari)
,HDF免费开源,并且提供一整套的web管理界面,供我们可以通过web界面管理我们的集群状态,web管理界面软件HDF网址👈点击进入
服务收费版本ClouderaManager 👈点击进入官网
cloudera
主要是美国一家大数据公司在apache开源Hadoop
的版本上,通过自己公
司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困难,版本兼容性等各种问题,生产环境推荐使用。
Hadoop的模块组成
- HDFS:一个高可靠、高吞吐量的分布式文件系统
- MapReduce:一个分布式的离线并行计算框架
- YARN:作业调度与集群资源管理的框架
- Common:支持其他模块的工具模块
Hadoop的架构模型(1.x,2.x的各种架构模型介绍)
1.x的版本架构模型介绍
文件系统核心模块:
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据
secondaryNameNode:主要能用于Hadoop当中元数据信息的辅助管理
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据
数据计算核心模块:
JobTracker:接收用户的计算请求任务,并分配任务给从节点
TaskTracker:负责执行主节点JobTracker分配的任务
2.x的版本架构模型介绍
第一种:NameNode与ResourceManager单节点架构模型
文件系统核心模块:
NameNode:集群当中的主节点,主要用于管理集群当中的各种元数据
secondaryNameNode:主要能用于Hadoop当中元数据信息的辅助管理
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据
数据计算核心模块:
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配
NodeManager:负责执行主节点APPmaster分配的任务
第二种:NameNode单节点与ResourceManager高可用架构模型
文件系统核心模块:
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据
secondaryNameNode:主要能用于Hadoop当中元数据信息的辅助管理
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据
数据计算核心模块:
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配, 以及计算任务的划分,通过zookeeper实现ResourceManager的高可用
NodeManager:负责执行主节点ResourceManager分配的任务
第三种:NameNode高可用与ResourceManager单节点架构模型
文件系统核心模块:
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,其中 nameNode可以有两个,形成高可用状态
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据
JournalNode:文件系统元数据信息管理
数据计算核心模块:
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配, 以及计算任务的划分
NodeManager:负责执行主节点ResourceManager分配的任务
第四种:NameNode与ResourceManager高可用架构模型
文件系统核心模块:
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,一般都是使用两个,实现HA高可用
JournalNode:元数据信息管理进程,一般都是奇数个
DataNode:从节点,用于数据的存储
数据计算核心模块:
ResourceManager:Yarn平台的主节点,主要用于接收各种任务,通过两个,构建成高可用
NodeManager:Yarn平台的从节点,主要用于处理ResourceManager分配的任务