当前位置: 首页 > news >正文

大数据入门-什么是HBase

目录

一、概念

二、架构

1.Client

2.Zookeeper

3.HMaster

4.HRegionServer

三、特性

1.数据存储庞大

2.支持随机读写

3.轻松融入生态

4.数据强一致性

5.性能足够高效

四、适用场景

五、其他事宜

1.权益备注

2.支持博主

大数据入门系列文章


这里简单介绍的HBase的概念、设计理念、数据模型、逻辑结构、架构等。至于比较详细的介绍,会单独针对这个组件进行详细介绍,可以关注博客后续阅读。

一、概念

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

Apache HBase是以HDFS为数据存储的,一种分布式、可扩展的NoSQL数据库。

HBase数据模型:HBase的设计理念依据Google的BigTable论文,论文中对于数据模型的首句介绍。BigTable是一个稀疏的、分布式的、持久的多维排序map(映射)。该map由行键、列键和时间戳索引。map中的每个值都是一个未解释的字节数组。

最终理解HBase数据模型的关键在于稀疏、分布式、多维、排序的映射。其中映射map指代非关系型数据库的Key-Value结构。

HBase逻辑结构:存储数据稀疏,数据存储多维,不同的行具有不同的列。数据存储整体有序,按照RowKey的字典排列,RowKey为Byte数组。

二、架构

HBase整体的基础架构如下图

1.Client

使用HBase RPC机制与HMaster和HRegionServer进行通信,Client与HMaster进行通信管理类操作,Client与HRegionServer进行数据读写类操作。

2.Zookeeper

HBase 通过 Zookeeper 来做 Master 的高可用、RegionServer 的监控、元数据的入口以及集群配置的维护等工作。

Zookeeper Quorum存储-ROOT-表地址、HMaster地址,HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况,Zookeeper避免HMaster单点问题。   

3.HMaster

HMaster主要是维护一些集群的元数据信息,同时监控RegionServer的服务状态,并且通过Zookeeper提供集群服务,向客户端暴露集群的服务端信息。

4.HRegionServer

HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据。
 

三、特性

1.数据存储庞大

HBase支持非常大的数据集,数十亿行,数百万列。如此庞大的数据量级,足以撑爆我们在J2EE阶段学习过的所有数据存储引擎。

2.支持随机读写

HBase支持大数据量的随机、实时读写操作。在海量数据中,可以实现毫秒级的数据读写。

3.轻松融入生态

HBase从一开始就深度集成了Hadoop。HBase基于Hadoop进行文件持久化,还继承了Hadoop带来的强大的可扩展性。Hadoop可以基于廉价PC机组建庞大的应用集群。HBase也深度集成了Hadoop的MapReduce计算框架,并且也正在积极整合Spark。这使得HBase能够很轻松的融入到整个大数据生态圈。

4.数据强一致性

HBase的数据是强一致性的,从CAP理论来看,HBase是属于CP的。这种设计可以让程序员不需要担心脏读、幻读这些事务最终一致性带来的问题。

5.性能足够高效

最后最重要的还是HBase的框架性能是足够高效的。HBase的开源社区非常活跃,他的性能经过很多大型商业产品的验证。Facebook的整个消息流转的基础设施就构建于HBase之上。

四、适用场景

这里不妨拿Hive来比较一下,有助于我们理解HBase的适用场景。
Hive提供了基于SQL的对海量数据进行查询统计的功能,但是Hive不存储数据,所有数据操作都是对HDFS上的文件进行操作,所以他对数据的查询操作能做的优化比较有限。同时Hive也无法直接管理数据,对数据的管理依赖于MapReduce,所以延迟非常高。所以Hive通常只适用于一些OLAP的场景,并且通常是与其他组件结合一起进行使用。
而HBase与Hive的区别就非常明显。HBase基于HDFS来存储数据,但是他存储的数据都是经过自己优化索引后的数据,所以他对数据的存储是非常高效的,比HDFS直接存储文件的性能要高很多,可以作为整个大数据的存储基石。而HBase以类似于Redis的列式存储来管理数据,对数据的增删改都会非常高效,可以达到毫秒级响应。同时,也提供了完善的客户端API,所以他完全可以作为传统意义上的数据库使用,适用于大部分的OLTP的场景。但是他的缺点也比较明显,基于列式存储的数据,天生就不太适合大规模的数据统计,所以在很多OLAP的场景,需要结合其他一些组件如spark、hive等,来提供大规模数据统计的功能

五、其他事宜

1.权益备注

如有侵权请联系我删除。

2.支持博主

如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!

大数据入门系列文章

1.大数据入门-大数据是什么

2.大数据入门-大数据技术概述(一)

3.大数据入门-大数据技术概述(二)

4.大数据入门-三分钟读懂Hadoop

5.大数据入门-五分钟读懂HDFS

6.大数据入门-五分钟读懂Hive

7.大数据入门-什么是Kudu

帅哥美女们走过路过不要错过,关注点赞走上人生巅峰!!!


http://www.mrgr.cn/news/70011.html

相关文章:

  • 【 ElementUI 组件Steps 步骤条使用新手详细教程】
  • LeetCode100之相交链表(160)--Java
  • Git - Think in Git
  • Webpack 1.13.2 执行 shell 命令解决 打印时没有背景色和文字颜色的问题
  • vue3面试题1|[2024-11-12]
  • Flutter开发应用安装二次打开闪退,ios解决方案
  • 基于Spring Boot+Vue的学院食材采供管理系统
  • 大厂面试真题-说说tomcat的优缺点
  • C++builder中的人工智能(19):如何在C++中制作一个简单但强大的聊天机器人?
  • 【Steam登录】protobuf协议逆向 | 续
  • Chrome浏览器如何导出所有书签并导入书签
  • Node Game(CRLF注入)
  • gtfToGenePred如何下载
  • 对于大根堆的计算时间复杂度的过程
  • Spring Boot 监视器
  • 【IT人物系列】之Java之父
  • lineageos-19 仓库群遍历,打印第一条git log
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:新技术融合的无限可能(下)(12/30)
  • 7个常用的JavaScript数组操作进阶用法
  • 蜜蜂交配优化算法(Honey-Bee Mating Optimization Algorithm,HBMOA)的MATLAB实现
  • 解非线性方程组
  • C++代码优化(四):通过分层来体现 “有一个“ 或 “用...来实现“
  • 07 P1164 小A点菜
  • [强网杯 2019]随便注 1
  • Dubbo源码解析(二)
  • 快速傅里叶变换(FFT)基础(附python实现)