Hbase 初学者(1) 基础特性

本文介绍了HBase的基础特性,包括其非关系型、基于列、分布式、可扩展的大数据存储能力。探讨了HBase如何通过自动分片实现水平扩展,并对比了HBase与传统关系型数据库的主要区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hbase 初学者(1) 基础特性

内容来自书籍 Apache HBase Primer

HBase是一个开源NoSQL数据库,基于列存储数据存储模型。HBase是Java语言编写的。提供了JAVA API,RESTfulAPI和Thrift.

基本特性

  • 非关系型
  • 基于列
  • 分布式
  • 可扩展
  • 大数据存储

分布式

提供了两种分布式方式

  • 伪分布式:所有HBase 守护进程运行在一个节点上。
  • 完全分布式:守护进程运行在一个集群的多个节点上。

伪分布式可以运行在本地文件系统或者HDFS。当运行在本地分布式系统上时,无法保证持久性。如果文件没有正确关闭,编辑内容会丢失。

完全分布式模式只能运行的HDFS上。

HBase支持自动分片。

大数据存储

基于Hadoop和HDFS,提供低延迟,随机,实时读写大数据。随机读访问不是Hapood的特性,reader只能运行批处理,意思是数据只能被顺序访问来查找要执行的工作。

非关系型

灵活的数据模型

HBase里的基本存储单位是table。一个table包含一个或多个列簇,列簇由列组成。数据保存在row中,一个row是一个键值对集合。每一个row有一个唯一的row主键。row主键在数据添加时创建,用于排序和数据分片。

HBase提供灵活的schema模型,因此column被添加到表时不需要预定义。只有table和列簇需要预定义。一个列簇中的列都是紧邻存储的。表中的两行不需要相同的列。

Hbase不支持事务。Hbase甚至不是consistent,但是在记录级别有强一致性。强一致性说明总可以获的最新数据,但是会增加时间开销。换句话说,最终一致性会返回过期时间。

可扩展

Hbase中可水平扩展的基本单位是region。rows在region建分片。一个region存有一定范围内相连的row。一个表的数据可以保存在一个或多个region中。下图1-1中,region有12row,被分到两个regions中,每个6个row。

Alt text

在Hadoop生态系统中的角色

Hbase保存数据在HDFS中的StoreFile中。HBase不使用MapReduce框架,但是可以作为MapReduce工作的源或者目标。

和Hadoop一样,HBase设计为在商用硬件上运行,具有对单个节点故障的容错。Hbase设计用于流式访问大数据集的批处理系统优化。当HBase用于随机读时,HBase没有为随机访问优化。HBase引起的随机读延迟,可以通过使用块缓存降低,但这样会增加堆内存储尺寸。

HBase可以用于实时分析,通过集合MapReduce和其他框架,比如Hive。

HBase和传统的关系数据库的区别

特性RDBMSHBase
Schema特定的灵活的
数据容量小到中等(几千或百万行)TB大数据(亿级),PB
主要查询语言SQLGet,Put,Scan Shell commands
数据类型类型列无数据类型
关系支持不支持
Joins支持内建不支持,需要通过MapReduce来扩展
数据结构高度结构化和静态结构,稳定的数据模型非机构化,半结构化或结构化,灵活的数据模型
事务支持不支持
高级查询语言支持不支持
索引Primary,Secondary,B-Tree,ClusteredSecondary indexes
一致性强一致性,CAP一致性强一致性,ACID
扩展性提供某种级别的垂直扩展性水平扩展性,线性扩展
分布式某种程度上高分布式
实时查询支持支持
触发器支持通过协处理来提供类似RDBMS的触发器功能
Hardware特殊硬件通用硬件
存储过程支持通过协处理器来支持
Java不需要需要
高可用支持很好
容错性某种大小的情况下高容错性
正常化需要大数据及不需要
基于对象编程模型因为聚合数据的复杂性,基于对象模型不适用join键值存储使得HBase适应面向对象编程模型
管理更多的管理更少的管理在自动分片,扩展和负载均衡
架构单一分布式
分片支持受限。手动服务器分片。表隔离自动分片
写性能扩展性不好线性扩展
单点错误
复制异步异步
存储模型表空间HDFS的StoreFile
压缩内建在RDBMS的存储引擎/表/索引。内建Gzip组件
缓存查询缓存中的标准缓存和元数据缓存内存缓存
主要数据对象TableTable
读写吞吐量1000s 请求每秒每秒百万级请求
安全性验证/授权验证/授权
基于行/列基于行基于列
稀疏表适用于稀疏表没有为稀疏表优化
宽窄表窄表宽表
MapReduce整合不支持支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值