04 Hadoop思想与原理
2021/10/24 6:11:56
本文主要是介绍04 Hadoop思想与原理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、用图与自己的话,简要描述Hadoop起源与发展阶段。
从与谷歌系统的关系,关键时间节点,1.x,2.x与3.x的区别,不同公司发行版本等方面来讲。
答:Hadoop是一个对海量数据存储和海量数据分析计算的分布式系统。
Hadoop 1.x
海量数据存储 ------->HDFS
海量数据分析计算 -------> MapReduce
Hadoop 2.x 增加
资源调度系统 -------> Yarn
从hadoop最初的原型来看,hadoop已经远远超过了本身的批处理。从广义上来说,hadoop现在可以是指更广泛的一个hadoop生态了,而不仅仅是HDFS,MapReduce和Yarn。例如Hive,Hbase,Flume,Sqoop等等项目都属于这个生态。下图展示为Hadoop的生态圈。
1、Hadoop的发展
Hadoop起源于开源网络搜索引擎Apache Nutch,后者本身也是Lucene项目的一部分。Nutch项目面世后,面对数据量巨大的网页显示出了架构的灵活性不够。当时正好借鉴了谷歌分布式文件系统,做出了自己的开源系统NDFS分布式文件系统。第二年谷歌又发表了论文介绍了MapReduce系统,Nutch开发人员也开发出了MapReduce系统。随后NDFS和MapReduce命名为Hadoop,成为了Apache顶级项目。
从Hadoop的发展历程来看,它的思想来源于Google的三篇技术性论文,一是GFS:Goolgle File System分布式处理系统,这解决了Hadoop的存储问题;二是Mapreduce:分布式计算模型,这解决了Hadoop对数据进行计算处理的问题;三是BigTable,这解决了查询分布式存储文件慢的问题。
2、Hadoop的发行版本
Hadoop的三大发行版本,分别为Apache、Cloudera、Hortonworks。
其中,Apache为最基础的版本,可以基于此做二次开发。下图为Hadoop的历史版本发展图。
3、Hadoop的架构模型
- x的版本架构模型介绍
文件系统核心模块(HDFS):
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据;
secondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理;
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据;
数据计算核心模块(MapReduce):
JobTracker:接收用户的计算请求任务,并分配任务给从节点;
TaskTracker:负责执行主节点JobTracker分配的任务。
2.x的版本架构模型介绍
第一种:NameNode与ResourceManager单节点架构模型
文件系统核心模块(HDFS):
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据;
secondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理;
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据;
数据计算核心模块(MapReduce):
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配,以及计算任务的划分;
NodeManager:负责执行主节点ResourceManager分配的任务。
第二种:NameNode单节点与ResourceManager高可用架构模型
文件系统核心模块(HDFS):
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据;
secondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理;
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据;数据计算核心模块(MapReduce):
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配,以及计算任务的划分,通过zookeeper实现ResourceManager的高可用;
NodeManager:负责执行主节点ResourceManager分配的任务。
第三种:NameNode高可用与ResourceManager单节点架构模型
文件系统核心模块(HDFS):
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,其中nameNode可以有两个,形成高可用状态;
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据;
JournalNode:文件系统元数据信息管理;
数据计算核心模块(MapReduce):
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配,以及计算任务的划分;
NodeManager:负责执行主节点ResourceManager分配的任务。
第四种:NameNode与ResourceManager高可用架构模型
文件系统核心模块(HDFS):
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,一般都是使用两个,实现HA高可用;
JournalNode:元数据信息管理进程,一般都是奇数个;
DataNode:从节点,用于数据的存储;
数据计算核心模块(MapReduce):
ResourceManager:Yarn平台的主节点,主要用于接收各种任务,通过两个,构建成高可用;
NodeManager:Yarn平台的从节点,主要用于处理ResourceManager分配的任务。
4、Hadoop的优势
(1)高可靠性
Hadoop在出现故障时可以对失败的节点重新分布处理。
(2)高扩展性
在集群间分配任务数据,可以方便地扩展数以千计的节点。
(3)高效性
Hadoop并行工作,以加快任务处理速度。
(4)高容错性
Hadoop自动保存多副本数据,并且可以将失败的任务重新分配。
二、用图与自己的话,简要描述名称节点、第二名称节点、数据节点的主要功能及相互关系
答:数据节点是分布式文件系统HDFS的工作节点,它的主要功能包括负责数据的存储和读取,根据客户端或者是名称节点的调度来进行数据的存储和检索,然后向名称节点定期发送自己所存储的块的列表。
在HDFS中,名称节点的主要功能为存储元数据,负责管理分布式文件系统的命名空间,其内保存了两个核心的数据结构,FsImage和EditLog。
第二名称节点:是HDFS架构中的一个组成部分,它用来保存名称节点中对HDFS元数据信息的备份,并减少名称节点重启的时间,第二名称节点通过HTTPGET方式从名称节点上获取到FsImage和EditLog文件,并下载到本地的相应目录下。
这篇关于04 Hadoop思想与原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-05-13Windows下hadoop环境搭建之NameNode启动报错
- 2023-04-14hadoop伪分布式集群的安装(不是单机版)
- 2022-12-05Hadoop生态系统—数据仓库Hive的安装
- 2022-11-02Win10搭建Hadoop环境
- 2022-10-19Hadoop生态系统(数据仓库Hive的安装)
- 2022-10-03Hadoop、storm和Spark Streaming简单介绍
- 2022-10-03胖虎的Hadoop笔记——Hadoop的伪分布式部署
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-09Ubuntu下安装伪分布式HADOOP遇到的一些问题