04 Hadoop思想与原理
1.用图与自己的话,简要描述Hadoop起源与发展阶段。
(1)Hadoop是什么?
①Hadoop是Apache Lucene创始人Doug Cutting创建的,Lucene是一个广泛使用的文本搜索系统库。
②Hadoop起源于Apache Nutch,一个开源的网络搜索引擎, 它本身也是Lucene项目的一部分。
③Hadoop是一个对海量数据存储和海量数据分析计算的分布式系统。
④狭义上说,Hadoop指Apache这款开源框架,它的核心组件有:
HDFS(分布式文件系统):解决海量数据存储
YARN(作业调度和集群资源管理的框架):解决资源任务调度
MAPREDUCE(分布式运算编程框架):解决海量数据计算
广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
(2)Hadoop的起源
2003-2004年,Google公布了部分GFS和MapReduce思想的细节,受此启发的Doug Cutting等人用2年的业余时间实现了DFS和MapReduce机制,使Nutch性能飙升。然后Yahoo招安Doug Gutting及其项目。
2005年,Hadoop作为Lucene的子项目Nutch的一部分正式引入Apache基金会。
2006年2月被分离出来,成为一套完整独立的软件,起名为Hadoop。
Hadoop名字不是一个缩写,而是一个生造出来的词。是Hadoop之父Doug Cutting儿子毛绒玩具象命名的。
Hadoop的成长过程:Lucene–>Nutch—>Hadoop。
(3)hadoop的历史版本
①0.x系列版本:Hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本。
②1.x版本系列:Hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等。
③2.x版本系列:架构产生重大变化,引入了yarn平台等许多新特性。
2.用图与自己的话,简要描述名称节点、数据节点的主要功能及相互关系。
(1)名称节点的主要功能:
①NameNode在内存中保存着整个文件系统的名称空间和文件数据块的地址映射。
②整个HDFS可存储的文件数受限于NameNode的内存大小。
③管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间。
(2)数据节点的主要功能:
①提供真实文件数据的存储服务
②以数据的形式存储HDFS文件。
③响应HDFS客户端读写请求。
③周期性向NameNode汇报心跳信息、数据块信息、缓存数据块信息。
(3)名称节点、数据节点的关系
(4)HDFS结构图
3.分别从以下这些方面,梳理清楚HDFS的 结构与运行流程,以图的形式描述。
- 客户端与HDFS
- 客户端读
- 客户端写
- 数据结点与集群
- 数据结点与名称结点
- 名称结点与第二名称结点
- 数据结点与数据结点
- 数据冗余
- 数据存取策略
- 数据错误与恢复
- 客户端与HDFS
- 客户端读
- 客户端写
4.梳理HBase的结构与运行流程,以用图与自己的话进行简要描述,图中包括以下内容:
(1)Master主服务器的功能
①为Region server分配region
②负责Region server的负载均衡
③发现失效的Region server并重新分配其上的region。
④HDFS上的垃圾文件回收。
⑤处理schema更新请求。
(2)Region服务器的功能
①维护master分配给他的region,处理对这些region的io请求。
②负责切分正在运行过程中变的过大的region。
(3)Zookeeper协同的功能
①保证任何时候,集群中只有一个master
②存储所有Region的寻址入口
③实时监控Region server的上线和下线信息。并实时通知给master
④存储HBase的schema和table元数据
(4)Client客户端的请求流程
写流程
读流程
(5)四者之间的相系关系
(6)与HDFS的关联
5.理解并描述Hbase表与Region与HDFS的关系。
1)一个HBase表被划分成多个Region;
一个Region会分裂成多个新的Region;
不同的Region可以分布在不同的Region服务器上;
6.理解并描述Hbase的三级寻址。
7.假设.META.表的每行(一个映射条目)在内存中大约占用1KB,并且 ,通过HBase的三级寻址方式,理论上Hbase的数据表最大有多大?
一个-ROOT-表最多只能有一个Region,也就是最多只能有2GB,按照每行(一个映射条目)占用1KB内存计算,2GB空间可以容纳2GB/1KB=231行,也就是说,一个-ROOT-表可以寻址231个.META.表的Region。
同理,每个.META.表的 Region可以寻址的用户数据表的Region个数是2GB/1KB=231。
最终,三层结构可以保存的Region数目是(2GB/1KB) × (2GB/1KB) = 2100个Region,即理论上Hbase表最大273G。
8.MapReduce的架构,各部分的功能,以及和集群其他组件的关系。
同HDFS一样,Hadoop MapReduce也采用了Master/Slave(M/S)架构,主要由4个组件构成:Client、JobTracker、TaskTracker和Task。
1)Client:
9.MapReduce的工作过程,用自己词频统计的例子,将split, map, partition,sort,spill,fetch,merge reduce整个过程梳理并用图形表达出来。
MapReduce程序运行流程分析
词频分析:
MapTask并行度决定机制: 一个job的map阶段MapTask并行度(个数),由客户端提交job时的切片个数决定。
shuffle机制:Mapreduce确保每个reducer的输入都是按键排序的。系统执行排序的过程(即将map输出作为输入传给reducer)称为shuffle。
reduce端
Combiner合并
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步