运维开发网

HBase原理总结

运维开发网 https://www.qedev.com 2020-05-18 14:44 出处:网络
HBase是基于Hadoop HDFS的一个高可用、高性能、面向列、可伸缩、实时读写的分布式数据库系统,主要存储非结构化和半结构化数据。其利用Hadoop HDFS作为文件存储系统,Hadoop MapReduce处理HBase中的海量数据,Zookeeper作为分布式协同服务。 1 HBase概述 1.1 HBase的优缺点 优点 高可用:WAL预写式日志(Write-Ahead Log)机制保

HBase是基于Hadoop HDFS的一个高可用、高性能、面向列、可伸缩、实时读写的分布式数据库系统,主要存储非结构化和半结构化数据。其利用Hadoop HDFS作为文件存储系统,Hadoop MapReduce处理HBase中的海量数据,Zookeeper作为分布式协同服务。

1 HBase概述

1.1 HBase的优缺点

优点

高可用:WAL预写式日志(Write-Ahead Log)机制保证数据写入时不会因机器异常丢失数据,Replication机制保证机器故障时,数据不会丢失,且HBase底层使用HDFS,HDFS有备份

高性能:底层LSM(Log-Structured Merge Tree)数据结构和Rowkey有序排列使得HBase具有高写入性能;Region切分、主键索引和缓存机制使得HBase面对海量数据具备随机读取性能,该性能针对Rowkey查询达到毫秒级

面向列:面向列存储和权限控制,列独立检索,支持快速数据索引

稀疏:空列不占内存

大:一张表可以多达十亿行、上百列

多版本:支持数据多版本

数据类型单一:HBase中数据类型都是字符串

无模式: 每一行都有一个可以排序的rowKey和任意多的列,列可以根据需要动态增加,同一张表的不同行可以有不同的列。

缺点

单一Rowkey固有的局限性决定了不能有效支持多条件查询

对join以及多表合并数据的查询性能不好

更新过程中有大量的写入和删除操作,需要频繁合并和分裂降低存储效率

不适合大范围扫描查询

不直接支持SQL语句查询,对关系模型支持不好,分区和索引模式设计比较困难

1.2 HBase使用场景

2 HBase数据模型

3 HBase原理

0

精彩评论

暂无评论...
验证码 换一张
取 消