大数据开发-HBase关系对比

2021-04-29 17:58:23 浏览数 (1)

今天给大家带来的是大数据开发-HBase关系对比,相信大家也都发现了,有很多框架的用处都差不多,为什么只用这个而不用那个呢?这就是两者之间的一些不同之处的对比,然后选择一个最适用的,本期就是关系对比,为什么它最适用!

一、HBase基础知识

(1)HBase依赖和NoSQL

HBase 依赖于 HDFS 做底层的数据存储,BigTable 依赖 Google GFS 做数据存储

HBase 依赖于 MapReduce 做数据计算,BigTable 依赖 Google MapReduce 做数据计算

HBase 依赖于 ZooKeeper 做服务协调,BigTable 依赖 Google Chubby 做服务协调

NoSQL = NO SQL

NoSQL = Not Only SQL:会有一些把 NoSQL 数据的原生查询语句封装成 SQL,比如 HBase 就有 Phoenix 工具关系型数据库 和 非关系型数据库的典型代表

NoSQL:hbase, redis, mongodb

RDBMS:mysql,oracle,sql server,db2

(2)NoSQL 数据库的要点:

1.它介于 NoSQL 和 RDBMS 之间,仅能通过主键(rowkey)和主键的 range 来检索数据

2. HBase 查询数据功能很简单,不支持 join 等复杂操作

3. 不支持复杂的事务,只支持行级事务(可通过 hive 支持来实现多表 join 等复杂操作)。

4. HBase 中支持的数据类型:byte[](底层所有数据的存储都是字节数组)

5.主要用来存储结构化和半结构化的松散数据。

(3)结构化、半结构化和非结构化区别:

结构化:数据结构字段含义确定,清晰,典型的如数据库中的表结构

半结构化:具有一定结构,但语义不够确定,典型的如 HTML 网页,有些字段是确定的(title), 有些不确定(table)

非结构化:杂乱无章的数据,很难按照一个概念去进行抽取,无规律性与 Hadoop 一样,HBase 目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加 计算和存储能力。

二、HBase与Hadoop的关系

(1)HDFS

1.为分布式存储提供文件系统

2.针对存储大尺寸的文件进行优化,不需要对HDFS上的文件进行随机读写

3.直接使用文件

4.数据模型不灵活

5.使用文件系统和处理框架

6.优化一次写入,多次读取的方式

(2)HBase

1.提供表状的面向列的数据存储

2.针对表状数据的随机读写进行优化

3.使用key-value操作数据

4.提供灵活的数据模型

5.使用表状存储,支持MapReduce,依赖HDFS

6.优化了多次读,以及多次写

三、RDBMS与HBase的对比

关系型数据库

(1)结构:

1.数据库以表的形式存在

2.支持FAT、NTFS、EXT、文件系统

3.使用Commit log存储日志

4.参考系统是坐标系统

5.使用主键(PK)

6.支持分区

7.使用行、列、单元格

(2)功能:

1.支持向上扩展

2.使用SQL查询

3.面向行,即每一行都是一个连续单元

4.数据总量依赖于服务器配置

5.具有ACID支持

6.适合结构化数据

7.传统关系型数据库一般都是中心化的

8.支持事务

9.支持Join

HBase

(1)结构:

1.数据库以region的形式存在

2.支持HDFS文件系统

3.使用WAL(Write-Ahead Logs)存储日志

4.参考系统是Zookeeper

5.使用行键(row key)

6.支持分片

7.使用行、列、列族和单元格

(2)功能:

1.支持向外扩展

2.使用API和MapReduce来访问HBase表数据

3.面向列,即每一列都是一个连续的单元

4.数据总量不依赖具体某台机器,而取决于机器数量

5.HBase不支持ACID(Atomicity、Consistency、Isolation、Durability)

6.适合结构化数据和非结构化数据

7.一般都是分布式的

8.HBase不支持事务

9.不支持Join

好了以上就是本期的所有内容了,大数据开发的关系对比了解的清楚才能更好的选择适合自己的,知己知彼百战百胜。

希望大家点个关注,及时收取最新文章推送,想了解更多敬请咨询加米谷大数据。

有问题的欢迎在评论区留言,如有侵权请告知。

0 人点赞