Hbase基础

本文详细介绍了HBase的基础知识,包括HBase的数据模型(命名空间、表、行键、列族、列、时间戳和版本)以及HBase的架构(Client、Zookeeper、HMaster和HRegionServer)。HBase是一个面向列、分布式、实时读写的数据库,适用于海量数据存储,具有高可伸缩性和可靠性。此外,文章还对比了HBase与HDFS以及传统关系型数据库的差异。
摘要由CSDN通过智能技术生成

1.HBase简介

HBASE 理论

  • HBase是一个基于Hadoop的分布式、面向列的开源数据库,对大数据实现了随机定位和实时读写。
  • HBase是基于Google的Bigtable技术实现的,Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop的HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase利用Hadoop的MapReduce来处理HBase中的海量数据;Google Bigtable利用Chubby进行协同服务,HBase利用Zookeeper进行协同服务。
  • HBase具有以下特点。
    读取数据实时性强:可以实现对大数据的随机访问和实时读写。
    存储空间大:可以存储十亿行、百万列、上千个版本的数据。
    具有可伸缩性:可以通过增删节点实现数据的伸缩性存储。
    可靠性强:HBase的RegionServer之间可以实现自动故障转移。
    面向列:面向列(族)的存储和权限控制,列(族)独立检索。
    数据类型单一:HBase中的数据都是字符串,没有类型。

2.HBase的数据模型

HBase是一个面向列的数据库,数据模型主要有命名空间(Namespace)、表(Table)、行键(Rowkey)、列族(Column Family)、列(Column)、时间戳(Timestamp)、单元格(Cell)。

2.1 Namespace

Namespace可以对表进行逻辑分组,类似于关系数据库系统中的数据库。

2.2 表

表由Rowkey和列族组成,按Rowkey的字典顺序进行排序。

2.3 Rowkey

Rowkey是每一行数据的唯一标识。Rowkey可以使用任意字符串表示,Rowkey的最大长度为64KB,实际应用中Rowkey长度一般为10~1000 Byte。在HBase 内部,Rowkey保存为字节数组。

2.4 列族

列族是列的集合,在创建表时必须要声明列族。一个列族的所有列使用相同的前缀(列族名称)。HBase所谓的列式存储就是指数据按列族进行存储,这种设计可以方便地进行数据分析。

2.5 列

列以键值对的形式进行存储。列的值是字节数组,没有类型和长度限定。列的格式通常为column family:qualifier。例如,name:tom列和name:jack列都是列族name的成员,:后的内容通常称为Qualifier(限定符),Qualifier可以是任意的字节数组,相同列族中的Qualify的名称是唯一的,列的数量可以达到百万级别。

2.6 Cell

Cell是指由行键、列族、版本唯一确定的单元。Cell中的数据全部以字节码形式存储。

2.7 时间戳和版本

每个Cell通常保存着同一份数据的多个版本(Version),多个版本之间用时间戳来区分。时间戳的类型是64位的整型。
时间戳可以被自动赋值和显式赋值。自动赋值是指在数据写入时,HBas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值