Hadoop第11周练习—HBase基础知识

1 书面作业1:数据即日志... 3

1.1     书面作业1内容... 3

1.2     回答... 3

2 书面作业2HBase合并过程... 3

2.1     书面作业2内容... 3

2.2     回答... 4

3 书面作业3HBase一致性... 4

3.1     书面作业3内容... 4

3.2    回答... 4

 

1 书面作业1:数据即日志

1.1 书面作业1内容

我们常说HBase是“数据即日志”的数据库,它是怎样修改和删除数据的?和Oracle这类传统的RDBMS有什么区别?

1.2 回答

HBase通过插入数据进行修改和删除,修改是根据时间戳完成的,删除时在插入的行上增加了删除标志。HBase的操作都是插入数据、顺序写,这点和关系型数据库中的写日志很相似,所以说HBase数据即日志。

HBaseOracle传统的RDBMS区别:

1. 修改和删除数据方式不一样:在关系型数据做修改和删除数据时不会增加新的数据记录,直接对老数据进行修改或删除,一旦完成修改或删除,则原始数据发生变化。HBase HBase通过插入数据进行修改和删除。

2. 数据存储方式不一样HBase是列式存储,传统Oracle关系型数据库是行式存储。HBase在做数据分析等场景比关系型数据库要好,数据分析时通常只需要读取部分列,HBase可以只读取这些列,而关系型数据库就需要全部列

3.  寻址方式不同HBase的性能瓶颈在硬盘传输,而关系型数据库的瓶颈在硬盘寻道时间

4. 压缩效率不同HBase等列式数据库相近的列里存的数据格式都很相近的,可以大幅度的压缩。所以压缩率会很高。行式数据库的压缩就没那么高,这样列式数据库不但节省了硬盘空间,也减少了io。但是对于联机事务系统的随机读写,还是行式数据库更合适。

2 书面作业2HBase合并过程

2.1 书面作业2内容

HBase合并storefile的原因是什么?在合并的过程中会做什么操作?如果在合并过程中恰好有涉及到有关storefile的查询发生,会发生什么情况(这个问题需要自行研究)?

2.2 回答

HBase合并Storefile的原因是由于HBase持久化数据保存在HDFS造成的,HDFS不擅长处理小文件,所以需要对Storefile进行合并。

HBase合并时做了两件事,第一删除有删除标记的数据和过期的旧版本数据,第二将多个小Storefile文件合并成一个大Storefile文件

如果在合并过程中恰好有涉及到有关Storefile查询发生,HBase先是把小Storefile加载到内存中用于用户在内存中检索相关数据,在内存中建立一个独立镜像备份专门提供查询,当合并完成后撤销内存空间中的镜像。

3 书面作业3HBase一致性

3.1 书面作业3内容

HBase具有怎样的一致性水平?

3.2 回答

HBase是最终一致性的系统,因为HBase是架构在Hadoop之上的数据库,“错误是常态”是Hadoop座右铭,在CAP理论中HBase为了满足可用性和分区容错性牺牲了一部分的数据一致性。

举例:我们要进行电信的指标汇总,并且把汇总结果冗余三份分布在3datanode中,我们可以设置阀值只要有2份结果保存了我们就可以继续做下面的操作,在一定时间范围内允许第3份结果稍后一致性同步,这就是最终一致性。所以说hbase是适用于AP理论的系统,最终一致性也满足分布式集群的特点。

 

注:

CAP理论是由EricBrewer教授提出的,在设计和部署分布式应用的时候,存在三个核心的系统需求,这个三个需求之间存在一定的特殊关系。三个需求如下:

C: Consistency一致性

A: Availability可用性

P:Partition Tolerance分区容错性

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

原文地址:https://www.cnblogs.com/shishanyuan/p/4227522.html