HBase

Posted gaojy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于HBase的主要内容,如果未能解决你的问题,请参考以下文章

Hbase的bulkload代码

Hbase 出现 org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet 错误(示例代码

无法从 MapReduce 代码访问 HBase

spark集成hbase与hive数据转换与代码练习

实用代码| hbase表的创建以及简单的增删改查

HBase代码学习---Flush流程