简介
Apache HBase 是Hadoop 的数据库,它是一种分布式的、可扩展的、适用于大数据的存储。通过HBase,你可以对大数据进行实时地随机读写访问。HBase的目标是在普通商用硬件的集群上建立一张拥有数十亿行和数百万列的巨大的数据表。
HBase 是一个开源的、分布式的、有版本控制的非关系型数据库,它以Google's Bigtable 作为原型,并运行于Hadoop 和HDFS 之上。
HBase 的特性
- 线性和模块化的可扩展性
- 强一致性读写操作
- 自动和可配置地对数据表进行水平扩展
- RegionServer 之间的自动failover 支持
- 方便的基础类来支持Hadoop MapReduce 任务运行在HBase 数据表上
- 对于实时查询的Block cache 和Bloom Filters
- 通过server side Filters 进行查询预测
- Thrift 网关和支持XML、Protobuf 和二进制数据编码的REST Web service
- 基于jruby 的shell 工具
安装
单机模式
单机模式 (standalone) 是指所有的HBase 后台进程,包括Master、RegionServer 和ZooKeeper 都运行在一个本地的JVM 中。
- 下载可执行文件并解压
$ tar zxvf hbase-2.0.0-SNAPSHOT-bin.tar.gz
$ cd hbase-2.0.0-SNAPSHOT
- 在conf/hbase-env.sh 中配置JAVA_HOME
- 编辑conf/hbase-site.xml 文件,指定HBase 和ZooKeeper 的本地数据目录。默认情况下,将在 /tmp 下创建目录。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/erichen/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/erichen/zookeeper</value>
</property>
</configuration>
- 启动HBase
$ cd bin
$ ./start-hbase.sh
可以通过jps 命令验证是否有HMaster 的进程,若存在说明启动成功。也可以通过 http://localhost:16010 查看HBase Web UI。
- 停止HBase
$ ./stop-hbase.sh
shell 工具
HBase 提供了shell 工具对数据库进行操作。
$ ./hbase shell
Command | Description | Example |
---|---|---|
create | 创建表 | create 'test', 'cf' |
list | 查看表 | list 'test' |
describe | 查看表详情 | describe 'test' |
put | 插入数据 | put 'test', 'row1', 'cf:a', 'value1' |
scan | 全表扫描 | scan 'test' |
get | 查看某一行的数据 | get 'test', 'row1' |
disable | 禁用表 | disable 'test' |
enable | 启用表 | enable 'test' |
drop | 删除表 | drop 'test' |
truncate | 清空表数据 | truncate 'test' |
exit | 退出 | exit |
查看源数据表
scan 'hbase:meta'