当你需要随机,实时读取大型数据的时候,用HBASE.这个项目的目的就在于处理超大量的表格:它能建立在普通硬件集群上读取十亿行甚至更多行的数据。这是以谷歌的Bigtable为原型的一个开源、有版本、非关系型的数据库,正如Bigtable利用了谷歌文件系统提供的分布式数据存储一样,Hbase也同样是建立在hadoop和hdfs之上才可用。
下载地址:http://www.apache.org/dyn/closer.cgi/hbase/
官网推荐的比较稳定的版本是1.2.6
特点:1.线性、模块化、可量测性
2. 严格一致性的读写,自动分表
3. 通过RegionServers自动支持备援
4. 基于支持Hadoop MapReduce job的基类使用HbaseTable
5. 便利的通过JAVAapi客户端
6. 分块缓存和BloomFilters解决了实时问题
7. 通过服务筛选器的查询结果进行预测
8. 可以通过XML,Protobuf,和字节数组编译,切换网关和空闲的web-服务
9. 可扩展性的shell
10. 支持metrics 通过hadoop 的metrics系统提交到文件或者Ganglia,或者JMX
单节点例子:在HBASE0.94x之前,Hbase支持回环IP地址127.0.0.1,如果你是Ubuntu和其他默认ip 为127.0.1.1的系统,将会出错。
二、单节点安装过程:
1.下载安装包到本地并解压
$ tar -xzvf hbase-1.2.6-bin.tar.gz
$ cd hbase-3.0.0-SNAPSHOT/2.在conf/hbase-env.sh中设置JAVA_HOME
$ vi /home/haoop/apps/hbase/conf/hbase-env.sh
# The javaimplementation to use. Java 1.7+required.
export JAVA_HOME=/opt/apps/jdk1.8.0_151
3.修改配置文件
$ vi /home/haoop/apps/hbase/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/testuser/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/testuser/zookeeper</value>
</property>
</configuration> 注意:不需要自己创建HBase数据目录,hbase会自动帮你创建,如果你创建了目录,Hbase将
会转移目录。可以在http://localhost:16010查看HBASE的浏览器客户端.
4.常用操作: 先启动hbase,才能进行后续常用命令操作:
$./bin/start-hbase.sh
启动完成后
$ jps 看看是否有一个叫Hmaster的进程,如果有,表示启动成功了。不需要开启hadoop,因为我的配置文件里配的地址是到本地。
《1》启动shell客户端
$ ./bin/hbase shell
hbase(main):001:0>
《2》创建表格test
hbase(main):001:0> create 'test', 'cf'
0 row(s) in 0.4170 seconds=> Hbase::Table - test
《3》列出表信息
hbase(main):002:0> list'test'
TABLE
test
1 row(s) in 0.0180 seconds=> ["test"]
《4》put 命令插入表数据
hbase(main):003:0> put 'test', 'row1', 'cf:a','value1'
0 row(s) in 0.0850 secondshbase(main):004:0> put 'test', 'row2', 'cf:b','value2'
0 row(s) in 0.0110 secondshbase(main):005:0> put 'test', 'row3', 'cf:c','value3'
0 row(s) in 0.0100 seconds《5》scan 命令审查表数据
hbase(main):006:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a,timestamp=1421762485768, value=value1
row2 column=cf:b, timestamp=1421762491785, value=value2
row3 column=cf:c, timestamp=1421762496210, value=value3
3 row(s) in 0.0230 seconds《6》get 命令获取单行数据信息
hbase(main):007:0> get 'test','row1'
COLUMN CELL
cf:a timestamp=1421762485768,value=value1
1 row(s) in 0.0350 seconds
《7》删除表格
删除表格前需要前disable一下:
$ disable 'test'
$ drop 'test'
《8》退出hbase
$quit
《9》停止hbase
$ ./bin/stop-hbase.sh
stopping hbase....................