Hbase简介
HBase 是一个构建在 Hadoop 文件系统之上的面向列的数据库管理系统。

Hadoop 存在限制?Hadoop 通过 HDFS 存储结构化、半结构甚至非结构化的数据,是传统数据库的补充,是海量数据存储的最佳方法,针对大文件的存储,批量访问和流式访问都了优化,也通过多副本解决容灾问题。
Hadoop 缺陷在于只能执行批处理,只能以顺序方式访问数据,意味着即使是最简单的工作,必须搜索整个数据集,无法实现对数据的随机访问。实现数据的随机访问是传统的关系型数据库所擅长的,但它们却不能用于海量数据的存储。在这种情况下,必须有一种新的方案来解决海量数据存储和随机访问的问题,HBase 就是其中之一 (HBase,Cassandra,couchDB,Dynamo 和 MongoDB 都能存储海量数据并支持随机访问)。
HBase 是一个构建在 Hadoop 文件系统之上的面向列的数据库管理系统。将数据存储在 HDFS 上,客户端可以通过 HBase 实现对 HDFS 上数据的随机访问。它具有以下特性:
- 不支持复杂的事务,只支持行级事务,即单行数据的读写都是原子性的;
- 由于是采用 HDFS 作为底层存储,所以和 HDFS 一样,支持结构化、半结构化和非结构化的存储;
- 支持通过增加机器进行横向扩展;
- 支持数据分片;
- 支持 RegionServers 之间的自动故障转移;
- 易于使用的 Java 客户端 API;
- 支持 BlockCache 和布隆过滤器;
- 过滤器支持谓词下推。
HBase 是一个面向 列族 的数据库管理系统。表 schema 仅定义列族,表具有多个列族,每个列族可以包含任意数量的列,列由多个单元格(cell )组成,单元格可以存储多个版本的数据,多个版本数据以时间戳进行区分。
HBase 中一张表的:
- RowKey 为行的唯一标识,所有行按照 RowKey 的字典序进行排序;
- 该表具有两个列族,分别是 personal 和 office;
- 其中列族 personal 拥有 name、city、phone 三个列,列族 office 拥有 tel、addres 两个列。

Hbase 的表具有以下特点:
-
容量大:一个表可以有数十亿行,上百万列;
-
面向列:数据是按照列存储,每一列都单独存放,数据即索引,在查询时可以只访问指定列的数据,有效地降低了系统的 I/O 负担;
-
稀疏性:空 (null) 列并不占用存储空间,表可以设计的非常稀疏 ;
-
数据多版本:每个单元中的数据可以有多个版本,按照时间戳排序,新的数据在最上面;
-
存储类型:所有数据的底层存储格式都是字节数组 (byte[])
Standalone 模式
配置环境变量
# vim /etc/profile
添加环境变量:
export HBASE_HOME=/usr/app/hbase-2.1.4
export PATH=$HBASE_HOME/bin:$PATH
配置的环境变量生效:
# source /etc/profile
修改安装目录下的 conf/hbase-env.sh,指定 JDK 的安装路径:
# The java implementation to use. Java 1.8+ required.
export JAVA_HOME=/usr/java/jdk1.8.0_201
修改安装目录下的 conf/hbase-site.xml,增加如下配置:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/hbase/rootdir</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/zookeeper/dataDir</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
hbase.rootdir: 配置 hbase 数据的存储路径;
hbase.zookeeper.property.dataDir: 配置 zookeeper 数据的存储路径;
hbase.unsafe.stream.capability.enforce: 使用本地文件系统存储,不使用 HDFS 的情况下需要禁用此配置,设置为 false。
将 HBase 的 bin 目录配置到环境变量,直接使用以下命令启动:
# start-hbase.sh
浙公网安备 33010602011771号