HBase
HBase单机模式
1)安装JDK
2)解压
$ tar xfz hbase-0.90.4.tar.gz
$ cd hbase-0.90.4
3)修改HBase配置文件
1、 hbase-env.sh
取消配置JDK的注释并做并如下修改(我的JDK安装路径):
export JAVA_HOME=/usr/Java/jdk1.6.0_27/
2、 hbase-site.xml
因为是单机启动,所以只设定了HBase写入的本地路径,修改如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>/home/hbase</value>
</property>
</configuration>
4)启动hbase
bin/start-hbase.sh
shell实践
$ ./bin/hbase shell
hbase(main):008:0> create 'test','cf' //创建表名及列族名 0 row(s) in 8.7610 seconds hbase(main):009:0> list 'test' TABLE test 1 row(s) in 0.2100 seconds hbase(main):010:0> put 'test', 'row1', 'cf:a', 'value1' 插入数据 0 row(s) in 0.7100 seconds hbase(main):011:0> put 'test', 'row2', 'cf:b', 'value2' 0 row(s) in 0.1020 seconds hbase(main):012:0> put 'test', 'row3', 'cf:c', 'value3' 0 row(s) in 0.2550 seconds hbase(main):013:0> scan 'test' ROW COLUMN+CELL row1 column=cf:a, timestamp=1493985320734, value=value1 row2 column=cf:b, timestamp=1493985332454, value=value2 row3 column=cf:c, timestamp=1493985346697, value=value3 3 row(s) in 0.4810 seconds hbase(main):014:0> cretae NameError: undefined local variable or method `cretae' for #<Object:0x3fa76c61> hbase(main):015:0> create 'newTable' ,'a','b','c' 0 row(s) in 1.6750 seconds hbase(main):016:0> put 'newTable','row1','a:1','A' 0 row(s) in 0.2150 seconds hbase(main):017:0> scan 'newTable' ROW COLUMN+CELL row1 column=a:1, timestamp=1493985596005, value=A 1 row(s) in 0.1340 seconds hbase(main):018:0> put 'newTable','row1','a:2','A2' 0 row(s) in 0.0430 seconds hbase(main):019:0> scan 'newTable' ROW COLUMN+CELL row1 column=a:1, timestamp=1493985596005, value=A row1 column=a:2, timestamp=1493985663261, value=A2 1 row(s) in 0.1680 seconds hbase(main):020:0> put 'newTable','row1','b:2','B2' 0 row(s) in 0.0700 seconds hbase(main):021:0> scan 'newTable' ROW COLUMN+CELL row1 column=a:1, timestamp=1493985596005, value=A row1 column=a:2, timestamp=1493985663261, value=A2 row1 column=b:2, timestamp=1493985694548, value=B2 1 row(s) in 0.1370 seconds hbase(main):022:0> disable 'test' 表失效 0 row(s) in 2.1170 seconds hbase(main):023:0> drop 'test' 删除表 0 row(s) in 2.1620 seconds hbase(main):024:0> list 'test' TABLE 0 row(s) in 0.1080 seconds hbase(main):025:0> quit 退出shell
关闭hbase
$ ./bin/stop-hbase.sh
伪分布式及全分布式模式
参考官网:http://hbase.apache.org/book.html#_architecture
HBase数据模型
在hbase中,数据被存储在表中,表中有行及字段,hbase更像是一个多维的map。
表
包含有多个行。
行
hbase中行包含一个key和至少一个字段及相关值,row key按照字母排序保证相关row就近存储。大部分情况下row key按照域名存储。
字段
包含一个列族和一个列的修饰,如cf:a
列族 Column Family
包含了一系列相关字段及值,方便配置是否将其值放入缓存,压缩,以及编码row key。
Column Qualifier
追加到列族的后面,每行的Column Qualifier都是易变的。
cell
代表值得版本,由row key ,Column Family ,Column Qualifier,value以及timestamp组成。
timestamp
指定value版本,当put新值时随之改变。
java操作Hbase
http://www.cnblogs.com/ylqmf/archive/2012/02/18/2357537.html
参考:http://blog.csdn.net/god_wot/article/details/6829427
官网:http://hbase.apache.org/book.html#_architecture