「零基础学大数据」HBase基础

Posted 万码学堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「零基础学大数据」HBase基础相关的知识,希望对你有一定的参考价值。

1. 应用示例

搜索引擎中需要存储大量页面内容和网页之间的链接信息。其中域名可认为不会改变,但页面内容和网页之间的链接信息可能会经常改变,因此可能需要维护多个版本快照。上述数据可通过如下所示的结构进行存储。

· 域名(com.cnn.www)+标识(anchor:cnnsi.com)+时间戳(t9) ==> 数据(CNN)

· 域名(com.cnn.www)+标识类别(anchor)+标志(cnnsi.com)+时间戳(t9) ==> 数据

BigTable的数据模型。

2. HBase简介

HBase是一个用Java写的分布式列式数据库,最初是BigTable的开源实现。它最初是Apache Hadoop的一部分,其第一个版本在2007年10月,随Hadoop 0.15.0 捆绑发布,后在2010年从Hadoop子项目升级为Apache顶级项目,开始独立发展。

TIP:

由于历史发展原因,HBase和Hadoop存在较强的版本耦合,不同版本间存在一定兼容性问题,详见下表。其中S表示支持,X表示不支持,NT表示未知。


HBase-1.2.x

HBase-1.3.x

HBase-2.0.x

Hadoop-2.4.x

S

S

X

Hadoop-2.5.x

S

S

X

Hadoop-2.6.0

X

X

X

Hadoop-2.6.1+

S

S

S

Hadoop-2.7.0

X

X

X

Hadoop-2.7.1+

S

S

S

Hadoop-2.8.[0-1]

X

X

X

Hadoop-2.8.2

NT

NT

NT

Hadoop-2.8.3+

NT

NT

S

Hadoop-2.9.0

X

X

X

Hadoop-3.0.0

NT

NT

NT

3. HBase原理

3.1. HBase整体架构

「零基础学大数据」HBase基础(一)

TIP:

HBase架构中有一个十分重要的Zookeeper组件,它也是Apache基金会下的开源项目。该组件可以看做一个“公共白板”,主要用来完成分布式协调工作,如今被广泛应用于其他很多大数据相关项目中。

3.2. HBase表逻辑结构

简单看来,HBase是一个很大的Map,它通过一个有顺序的四元组 (rowkey, column_family, column, version) 来索引一条数据,其中rowkey表示行键,column_family表示列簇,column表示列,version表示时间戳。其中列簇和列通常写在一起,以“:”分隔,例如“cf1:c1”。

「零基础学大数据」HBase基础(一)

3.3. HBase表物理分割

HBase表内数据按照rowkey的字典序排序,被尽可能分割成大小相同的region。每个region server保存多个region的信息,对外提供服务。

TIP:

HBase中rowkey通常是一个“复合式的主键”,它设计至关重要,将直接影响数据的写入、查询速度。

无论HDFS还是HBase,都适合用于“一次写入,多次读取”的场景。

3.4. Hbase特点

1、列式存储,符合很多大数据应用场景的需求;

2、基于HDFS,天然具有良好的伸缩性;

3、提供WAL(写前日志)功能,保障数据可靠性;

4、弱中心化的设计以及region server的自动故障恢复为HBase提供了较高的可用性;

5、支持行级事务;

6、按照rowkey进行查询具有较高的性能。


以上是关于「零基础学大数据」HBase基础的主要内容,如果未能解决你的问题,请参考以下文章

从零开始学大数据-Java基础-流程控制语句

从零开始学大数据-Java基础-switch语句

转行或零基础不知如何学大数据?来看看这份大数据课程大纲

零基础学习大数据之前,你不得不面对的几个问题

从0开始学大数据-Java基础语法

从0开始学大数据-Java基础开篇