导图社区 分布式数据库HBase
分布式数据库HBase知识总结,包括HBase概述、HBase访问接口、HBase数据模型、HBase的实现原理和运行机制等内容。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
分布式数据库HBase
概述
从BigTable说起
BigTable是一个分布式存储系统,利用谷歌提出的MapReduce分布式并行计算模型处理海量数据,使用谷歌分布式文件系统GFS作为其底层数据存储方式,并采用Chubby提供系统管理服务,可以扩展到PB级别的数据和上千台机器,具有广泛应用性、可扩展性、高性能和高可用性等特点。
BigTable具有以下特性:
支持大规模海量数据
分布式并发数据处理效率高
易于扩展且支持动态伸缩
适用于廉价设备
适合读操作不适合写操作
HBase简介
HBase利用Hadoop Mapreduce来处理HBase中的海量数据,实现高性能计算;
利用Zookeeper作为协同服务,实现稳定服务和失败恢复;
使用HDFS作为高可靠的底层存储,利用廉价集群提供海量数据存储能力。
为了方便在HBase上进行数据处理,Sqoop为HBase提供了高效、便捷的关系数据库管理系统数据导入功能,
Pig和Hive为HBase提供了高层语言支持
HBase是BigTable的开源实现
HBase和BigTable的底层技术对应关系:
HBase与传统关系数据库的关系分析
HBase是一种非常成熟、稳定的数据库管理系统,通常具备的功能包括面向磁盘的存储和索引结构、多线程访问、基于锁的同步访问机制、基于日志记录的恢复机制和事务机制等。
HBase与传统是关系数据库的区别主要体现在以下几个方面:
数据类型
数据操作
存储模式
数据索引
数据维护
可伸缩性
Hbase 访问接口
类型:Native Java API
特点:常规和高效的访问方式
使用场合:适合Hadoop MapReduce作业并行批处理HBase表数据
类型:Hbase Shell
特点:HBase的命令行工具,简单的接口
使用场合:适合HBase管理
类型:Thrift Gateway
特点:利用Thrift序列化技术,支持C++、PHP、Python等多种语言
使用场合:适合其他异构系统在线访问HBase表数据
类型:REST Gateway
特点:解除语言限制
使用场合:支持REST风格的HTTP API访问Hbase
类型:Pig
特点:使用Pig Latin流式编程语言来处理HBase中的数据
使用场合:适合做数据统计
类型:Hive
特点:简单
使用场合:当需要与一类似SQL的方式来访问HBase的时候
HBase 数据模型
数据模型概述
HBase是一个稀疏、多维度、排列的映射表,这张表的索引包括行键、列族、列限定符和时间戳。
数据模型的相关概念
表
HBase采用表来组织数据,表由行和列组成,列划分为若干个列族。
行键
每个HBase表都有若干行组成,每个列由列键(Row Key)来标识。
列族
一个HBase表被分组成许多“列族”的集合,它是基本的访问控制单元。
列限定符
列族里的数据通过列限定符(或列)来定位。
单元格
在HBase表中,通过行键、列族和列限定符确定一个单元格(Cell)。
时间戳
每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。
数据坐标
HBase使用坐标来定位表中的数据,每个值都通过坐标来访问。
概念视图
在HBase的概念视图中,一个表可以视为一个稀疏、多维的映射关系。
物理视图
从概念视图层面,HBase中的每个表是由许多行组成的,但是在屋里存储层面,它猜用基于列的存储方式,而不是像传统关系数据库那样采用基于行的存储方式,这也是HBase和传统关系数据库的重要区别。
面向列的存储
通过前面的论述,我们已经知道HBase是面向列的存储,HBase是一个“列式数据库”。
HBase的实现原理
HBase的功能组件
库函数,链接到每个客户端。
一个Master主服务器(也称为Master)。
许多个Region服务器。
表和Region
在一个HBase中,存储了很多表。每个表只包含一个Region,随着数据的不断插入,Region会持续增大。
Region的定位
一个HBase的表可能非常庞大,会被分裂成很多个Region,这些Region可被分发到不同的Region服务器上。
HBase运行机制
HBase系统架构
客户端
Zookeeper服务器
Master主服务器
Region服务器
Region服务器的工作原理
用户读写数据的过程
缓存的刷新
StoreFile
Store的工作原理
Region服务器是HBase的核心模块,而Store是Region服务器的核心。每个Store对应了表中的一个列族的存储。每个Store包含一个MEMStore缓存和若干个StoreFile文件。
HLog的工作原理
在分布式环境下,必须考虑到系统出错的情形,比如当Region服务器发生故障时,MEMStore缓存中的数据(还没有被写入文件)会全部丢失。因此,HBase采用HLog来保证系统发生故障时能够恢复到正常的状态。
HBASE编程实践
HBase常用的Shell命令
HBase常用的Java API及应用实例