04

1.Hadoop的介绍
Hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。
——分布式文件系统(GFS),可用于处理海量网页的存储
——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目(同年,cloudera公司成立),迎来了它的快速发展期。
狭义上来说,hadoop就是单独指代hadoop这个软件,
广义上来说,hadoop指代大数据的一个生态圈,包括很多其他的软件

 

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

 

名称节点:负责管理分布式文件系统的命名空间,里面包含了两个核心的数据结构,即FsImage和EditLog。FsImage用户文件树以及所有的文件和文件夹的元数据。EfitLog记录的是文件的增删改查。
首次安装format格式化就是在本地生成FsImage。首次安装format格式化就是在本地生成FsImage。
HDFS的更新都会被写入到FsImage中而不是EditLog,因为对于分布式而言,FsImage非常庞大,直接对FsImage速度非常慢。HDFS的更新都会被写入到FsImage中而不是EditLog,因为对于分布式而言,FsImage非常庞大,直接对FsImage速度非常慢。
数据节点(DataNode):定期向名称节点发送自己的存储块的列表。数据节点(DataNode):定期向名称节点发送自己的存储块的列表。

因为HDFS文件会逐渐地变大,不断变大的EditLog文件通常不会对系统文件产生影响,但是当EditLog很大时,使得在HDFS重启时,将EditLog合并到FsImage中的过程十分缓慢,系统长期处于“安全模式”,用户的使用收到影响。

HDFS的第二名称节点(secondary NameNode)的作用:完成EditLog合并到FsImage的过程,缩短合并的重启时间,其次作为“检查点”保存元数据的信息。

 

4.简述HBase与传统数据库的主要区别

Hbase和传统数据库的区别
1.数据类型:Hbase只有简单的数据类型,只保留字符串;传统数据库有丰富的数据类型。

2.数据操作:Hbase只有简单的插入、查询、删除、清空等操作,表和表之间是分离的,没有复杂的表和表之间的关系;传统数据库通常有各式各样的函数和连接操作。

3.存储模式:Hbase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的,这样的好处是数据即是索引,访问查询涉及的列大量降低系统的I/O,并且每一列由一个线索来处理,可以实现查询的并发处理;传统数据库是基于表格结构和行存储,其没有建立索引将耗费大量的I/O并且建立索引和物化试图需要耗费大量的时间和资源。

4.数据维护:Hbase的更新实际上是插入了新的数据;传统数据库只是替换和修改。

5.可伸缩性:Hbase可以轻松的增加或减少硬件的数目,并且对错误的兼容性比较高;传统数据库需要增加中间层才能实现这样的功能。

6.事务:Hbase只可以实现单行的事务性,意味着行与行之间、表与表之前不必满足事务性;传统数据库是可以实现跨行的事务性。

Hbase的优点:
1.列可以动态增加,并且当列为空的时候就不存储,节省存储空间。

2.Hbase自动切分数据,使得数据存储自动具有水平扩展能力。

3.Hbase可以支持高并发顺序读写操作(因为其有内存的缓存机制)。

Hbase的缺点:
1.不能支持条件查询,只支持按照row key来查询

2.暂时不能支持Master server的故障切换,当Master宕机后,这个存储系统都会挂掉。

5.梳理HBase的结构与运行流程,以用图与自己的话进行简要描述,图中包括以下内容:

  • Master主服务器的功能
  • Region服务器的功能
  • Zookeeper协同的功能
  • Client客户端的请求流程
  • 四者之间的相系关系
  • 与HDFS的关联

 

 

(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的关系,三级寻址原理。

 

posted @ 2021-10-26 17:06  潮汕土著人  阅读(83)  评论(0编辑  收藏  举报