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的架构模型

  1. 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思想与原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程