04 Hadoop思想与原理,HBase架构与原理

1.用图与自己的话,简要描述Hadoop起源与发展阶段。

Hadoop最早起源于lucene下的Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

2003年、2004年谷歌发表的三篇论文为该问题提供了可行的解决方案。

——分布式文件系统(GFS),可用于处理海量网页的存储
——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
——分布式的结构化数据存储系统Bigtable,用来处理海量结构化数据。

Doug Cutting基于这三篇论文完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目(同年,cloudera公司成立),迎来了它的快速发展期。

 

 

2.用图与自己的话,简要描述名称节点、数据节点的主要功能及相互关系。

①、HDFS 采用主/从架构,主节点即NameNode 从节点即:DataNode

②、NameNode即是模式, 并完成外模式和模式之间的映像,模式和内模式之间的映像。

③、NameNode存放HDFS全局命名空间,充当全局数据目录;

④、在客户端读取数据过程中,将数据块和数据节点映射按远近排序列表发送给客户端;

⑤、在客户端写数据过程中,检查文件是否存在、是否有权限;将待写入文件分成若干文件块,并根据数据节点的繁忙和磁盘容量程度,分配数据块和数据节点对应关系列表反馈给客户端;

⑥、HDFS文件块默认是64M,普通文件块的大小为521字节

 

3.分别从以下这些方面,梳理清楚HDFS的 结构与运行流程,以图的形式描述

 

 

 

4.梳理HBase的结构与运行流程,以用图与自己的话进行简要描述

(1)Master主服务器的功能

管理用户对Table表的增、删、改、查操作;

管理HRegion服务器的负载均衡,调整HRegion分布; 

(2)Region服务器的功能

HRegion部分由很多的HRegion组成,存储的是实际的数据。每一个HRegion又由很多的Store组成,每一个Store存储的实际上是一个列簇(ColumnFamily)下的数据。 

(3)Zookeeper协同的功能

zookeeper是hbase集群的"协调器"。由于zookeeper的轻量级特性,因此我们可以将多个hbase集群共用一个zookeeper集群,以节约大量的服务器.

(4)Client客户端的请求流程

Client请求Zookeeper确定meta表所在的RegionServer所在的地址,接着根据Rowkey找到数据所归属的RegionServer;用户提交put或delete请求时HbaseClient会将put或delete请求添加到本地buffer中,符合一定条件会通过异步批量提交服务器处理。

(5)与HDFS的关联

HDFS是GFS的一种实现,他的完整名字是分布式文件系统,类似于FAT32,NTFS,是一种文件格式,是底层的,Hadoop HDFS为HBase提供了高可靠性的底层存储支持。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统

 

5.理解并描述Hbase表与Region与HDFS的关系

 

 

 

 

6.理解并描述Hbase的三级寻址

三级寻址为:Zookeeper文件,-ROOT-表,.MEATA.表(简记:ZRM)

 

 基本架构图

 

 每个部分作用

 

 

7.假设.META.表的每行(一个映射条目)在内存中大约占用1KB,并且每个Region限制为2GB,通过HBase的三级寻址方式,理论上Hbase的数据表最大有多大?

 

按照每行(一个映射条目)占用1KB内存计算,2048MB空间可以容纳2048MB/1KB=221行,也就是说,一个-ROOT-表可以寻址221个.META.表的Region。同理,每个.META.表的 Region可以寻址的用户数据表的Region个数是2048MB/1KB=221。最终,三层结构可以保存的Region数目是(2048MB/1KB) × (2048MB/1KB) = 242个Region

 

posted @ 2021-10-29 21:12  天珍  阅读(109)  评论(0)    收藏  举报