Spark大数据分与实践笔记(第五章 HBase分布式数据库-01)

第五章 HBase分布式数据库

5.1 HBase的概述

Spark计算框架是如何在分布式环境下对数据处理后的结果进行随机的、实时的存储呢?HBase数据库正是为了解决这种问题而应用而生。HBase数据库不同于一般的数据库,如MySQL数据库和Oracle数据库是基于行进行数据的存储,而HBase则是基于列进行数据的存储,这样的话,HBase就可以随着存储数据的不断增加而实时动态的增加列,从而满足Spark计算框架可以实时的将处理好的数据存储到HBase数据库中的需求。本章将针对HBase分布式数据库的相关知识进行详细讲解。

5.1.1 HBase的简介

HBase起源于2006年Google发表的BigTable论文。
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,利用HBase可在廉价PC服务器上搭建起大规模结构化存储集群。HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。HBase分布式数据库具有如下的显著特点:
●容量大
HBase分布式数据库中的表可以存储成千上万的行和列组成的数据。
●面向列
HBase是面向列的存储和权限控制,并支持独立检索。列存储,其数据在表中是按照某列存储的,根据数据动态的增加列,并且可以单独对列进行各种操作。
●多版本
HBase中表的每一个列的数据存储都有多个Version(版本)。一般地,每一列对应着一条数据,但是有的数据会对应多个版本。
●稀疏性
由于HBase中表的列允许为空,并且空列不会占用存储空间,因此,表可以设计的非常稀疏。
●扩展性
HBase的底层是依赖于HDFS。当磁盘空间不足时,我们可以动态的增加机器(即DataNode节点服务)来解决,从而避免像关系型数据库那样,进行数据的迁移。
●高可靠性
由于HBase底层使用是的HDFS,而HDFS本身具有备份机制,所以在Spark集群出现严重问题时,Replication (即副本)机制能够保证数据不会发生丢失或损坏。
HBase利用Hadoop HDFs作为其文件存储系统;利用Hadoop的MapReduce来处理HBase中的海量数据;利用Zookeeper作为协调服务作用。
HBase作为一种分布式数据库,它与传统数据库相比有很大区别,下面从存储模式、表字段以及可延伸性这三个方面分别进行介绍。
(1) 存储模式
传统数据库中是基于行存储的,而HBase是基于列进行存储的。
(2) 表字段
传统数据库中的表字段不能超过3o个,而HBase中的表字段不作限制。
(3)可延伸性
传统数据库中的列是固定的,需要先确定列有多少才会增加数据去存储,而HBase是根据数据存储的大小去动态的增加列,列是不固定的。

5.1.2 HBase的数据模型

HBase分布式数据库的数据存储在行列式的表格中,它是一个多维度的映射模型,其数据模型如下所示。
在这里插入图片描述

●Row Key (行键)
RowKey表示行键,每个HBase表中只能有一个行键,它在HBase中以字典序的方式存储。由于RowKey是唯一标识,因此Row Key的设计非常重要。数据的存储规则是相近的数据存储到一起。例如,当Row Key格式为www.apache.org、mail.apache.org以及jira.apache.org这样的网站名称时,可以将网站名称进行反转,反转成org.apache.www、org.apache.maill以及org.apache.jira,然后再进行存储,这样的话,所有org.apache域名将会存储在一起,避免子域名(即www、mail、jira)分散在各处。
●Timestamp(时间戳)
表示时间戳,记录每次操作数据的时间,通常记作数据的版本号。
●Column(列)
HBase表的列是由列族名、限定符以及列名组成的,其中"“:”为限定符。创建HBase表不需要指定列,因为列是可变的,非常灵活。
●Column Family (列族)
在HBase中,列族由很多列组成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妉妉师姐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值