大数据学习之路44-hbase结构原理快速理解

本文介绍了HBase作为Bigtable的开源Java版本,它是一种基于HDFS的分布式数据库,专注于高可靠性和高性能。HBase适用于存储结构化和半结构化的松散数据,但不支持复杂的查询和事务。数据分布在多个Region Server上,由HMaster进行管理,利用Zookeeper进行协调。其数据读写涉及内存缓存和HDFS日志,适合实时查询和大量数据存储场景,如银行账单记录和订单流水。

HBASE数据库介绍:

hbase是bigtable的开源java版本,是建立在hdfs之上,提供高可靠性,高性能,列存储,可伸缩,实时读写nosql的分布式数据库系统,它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)

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

HBASE查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务)

hbase中支持的数据类型: byte[]

与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力

思想:hbase软件如果只有一个,那么所有的数据操纵都要经过它,那么查询速度会很慢。我们说hbase是分布式的数据库并不是说他的文件存储在hdfs上就是分布式的,而是这个软件本身就是分布式的。那就意味着这个软件就可以在很多台机器上运行。这个时候就会有一个问题。如果客户端发出一条语句。那么哪个软件帮我们查询?

首先理清以下思路:我们要查询数据的话肯定要查询一个表。那我们能不能这样呢?一个hbase负责不同的表,我们查询不同的表就去找不同的服务器。但是这样也不好。

hbase的设计思想就是:这个表可以很大,可能我整个系统一张表就够了。所有的数据都在一张表中,可能有几十亿行,几百万列。数据量可能达到几十个T,那这样就意味着,有很多个查询的时候依然会很慢。

这个时候,我们就需要将表拆开。若干行作为一个片,那么这张表就可以分成很多子范围。就像下面这样:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来@音律

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值