当你需要随机,实时读取大型数据的时候,用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....................