分布式数据库HBase
分布式数据库HBase
HBase简介
1.从BigTable说起
- BigTable是一个分布式存储系统
- 利用谷歌提出的MapReduce分布式并行计算模型来处理海量数据
- 使用谷歌分布式文件系统GFS作为底层数据存储
- 采用Chubby提供协同服务管理
- 可以扩展到PB级别的数据和上千台机器,具备广泛应用性、可扩展性、高性能和高可用性等特点
- 谷歌的许多项目都存储在BigTable中,包括搜索、地图、财经、打印、社交网站Orkut、视频共享网站YouTube和博客网站Blogger等
2.HBase简介
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表
Hadoop生态系统中HBase与其他部分的关系:
关系数据库已经流行很多年,并且Hadoop已经有了HDFS和MapReduce,为什么需要HBase?
3.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中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此,可以视为一个“四维坐标”,即[行键, 列族, 列限定符, 时间戳]
面向行、列的存储
SQL模式
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