Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)

重点:HBase的基本数据模型、拓扑结构、部署配置方法,并介绍通过命令行和编程方式使用HBase的基本方法。

HBase:一种列存储模式与键值对相结合的NoSQL软件,但更多的是使用列存储模式,底层的数据文件采用HDFS存储,其文件结构和元数据等由自身维护.

HBase是Hadoop的重要成员,提供了分布式数据表和更高效的数据查询能力,弥补了HDFS只能进行文件管理以及MapReduce不适合完成实时任务的缺陷.

HBase利用HDFS实现数据分布式存储,数据分块以及多副本等,HBase在此基础上实现了对记录的更新和删除.Hbase具有灵活的数据模型,不仅可以基于键进行快速查询,还可以实现基于值、列名等的全文遍历和检索。

1、HBase概述

HBase的优点:

采用面向列加键值对的存储模式

可以实现便捷的横向扩展,对于元数据管理能力的扩展,可以通过数据分片的方式进行.

可以实现自动的数据分片.

可以实现严格的读写一致性和自动的故障转移

可以实现对全文的检索与过滤

支持通过命令行或者java/python等语言来进行操作

HIVE与HBase之间的关系,属于协作关系:

通过ETL工具将数据源抽取到HDFS存储;

通过Hive清洗、处理和计算原始数据;

HIve清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase

数据应用从HBase查询数据;

Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)

HIVE

 

HBASE

 

HIVE数据仓库:Hive本质将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询。(主要用于解决数据处理和计算问题)

 

HBASE数据库一种面向列存储的非关系型数据库(主要用于解决实时数据查询问题)

 

HIVE用于数据分析、清洗:HIVE是适用于离线的数据分析和清洗,延迟较高.

 

HBASE用于存储结构化和非结构化的数据;HBASE适应于单表非关系型数据的存储,不适合做关联查询,类似JOIN等操作。比如:日志明细、交易清单、轨迹行为。

 

HIVE基于HDFS、MapReduce:HIVE存储的数据依旧在DataNode上,编写的HQL语句终将是转换为MapReduce代码执行

 

HBASE基于HDFS:数据持久化存储的体现形式是Hfile,存放于DataNode中,被RegionServer以region的形式进行管理。

 

延迟较低,接入在线业务使用:面对大量的企业数据,HBase可以直线单表大量数据的存储,同时提供了高效的数据访问数据。

 
2、HBase的数据结构模型

HBase逻辑数据模型:

Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)

HBase物理存储方式,其中StuInfo列族的物理存储方式:

Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)

HBase采用的是一种面向列的键值对存储模式。

 

Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)

表4-1中有2行记录,行键:001和002,其他所有信息均可以看做是行内记录的字段,或者列。

表中有2个列族(Column Family),列族的名字必是可显示的字符串。每个列族中含有若干列(Columns)。列族可以看做HBase表结构(Schema)的一部分需要在建表时预先定义

//eg,创建表:create\'表名\',\'列族名1\', \'列族名2\', \'列族名N\' create \'table_test001\',\'basic\',\'test001\' 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzddf.html