分布式数据库HBase

分布式数据库HBase

HBase简介

1.从BigTable说起

  • BigTable是一个分布式存储系统
  • 利用谷歌提出的MapReduce分布式并行计算模型来处理海量数据
  • 使用谷歌分布式文件系统GFS作为底层数据存储
  • 采用Chubby提供协同服务管理
  • 可以扩展到PB级别的数据和上千台机器,具备广泛应用性、可扩展性、高性能和高可用性等特点
  • 谷歌的许多项目都存储在BigTable中,包括搜索、地图、财经、打印、社交网站Orkut、视频共享网站YouTube和博客网站Blogger等

2.HBase简介

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表

Hadoop生态系统中HBase与其他部分的关系:
分布式数据库HBase
关系数据库已经流行很多年,并且Hadoop已经有了HDFS和MapReduce,为什么需要HBase?
分布式数据库HBase

3.HBase与传统关系数据库的对比分析

分布式数据库HBase
分布式数据库HBase

4.HBase访问接口

类型 特点 场合
Native Java API 最常规和高效的访问方式 适合Hadoop MapReduce作业并行批处理HBase表数据
HBase Shell HBase的命令行工具,最简单的接口 适合HBase管理使用
Pig 使用Pig Latin流式编程语言来处理HBase中的数据 适合做数据统计
Hive 简单 当需要以类似SQL语言方式来访问HBase的时候

HBase数据模型

数据模型相关概念

  • 表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族
  • 行:每个HBase表都由若干行组成,每个行由行键(row key)来标识。
  • 列族:一个HBase表被分组成许多“列族”(Column Family)的集合,它是基本的访问控制单元
  • 列限定符:列族里的数据通过列限定符(或列)来定位
  • 单元格:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]
  • 时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引
    分布式数据库HBase
  • HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此,可以视为一个“四维坐标”,即[行键, 列族, 列限定符, 时间戳]

面向行、列的存储

SQL模式
分布式数据库HBase
分布式数据库HBase
分布式数据库HBase
分布式数据库HBase
分布式数据库HBase

HBase的安装与配置

1.HBase安装

  • 下载安装包hbase-1.1.2-bin.tar.gz
  • 解压安装包hbase-1.1.2-bin.tar.gz至路径 /usr/local
  • 配置系统环境,将hbase下的bin目录添加到系统的path中

备注:安装完Hadoop时,只包含HDFS和MapReduce等核心组件,并不包含HBase,因此,HBase需要单独安装

2.HBase配置

HBase有三种运行模式,单机模式、伪分布式模式、分布式模式。

以下先决条件很重要,比如没有配置JAVA_HOME环境变量,就会报错。
– JDK
– Hadoop( 单机模式不需要,伪分布式模式和分布式模式需要)– SSH

启动关闭Hadoop和HBase的顺序一定是:
启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop