选择一个 Apache 下载镜像,下载 HBase Releases.然后下载后缀为 bin.tar.gz 的文件; 例如 hbase-1.3.0-bin.tar.gz.
解压缩,然后进入到那个要解压的目录.
现在你已经可以启动HBase了。但是你可能需要先编辑 conf/hbase-site.xml 去配置hbase.rootdir,来选择HBase将数据写到哪个目录
<configuration>
<property>
<name>hbase.rootdirname>
<value>file:///tmp/hbasevalue>
property>
configuration>
将 DIRECTORY 替换成你期望写文件的目录. 默认 hbase.rootdir 是指向 /tmp/hbase-${user.name} ,也就说你会在重启后丢失数据(重启的时候操作系统会清理/tmp目录)
进入到bin目录下
root@s0:/usr/soft/hbase-1.0.2/bin# ./start-hbase.sh
starting master, logging to /usr/soft/hbase-1.0.2/bin/../logs/hbase-root-master-s0.out
root@s0:/usr/soft/hbase-1.0.2/bin# jps
5394 Jps
3078 NameNode
3356 ResourceManager
5310 HMaster
现在你运行的是单机模式的Hbaes。所有的服务都运行在一个JVM上,包括HBase和Zookeeper。HBase的日志放在logs目录,当你启动出问题的时候,可以检查这个日志。
用shell连接你的HBase
root@s0:/usr/soft/hbase-1.0.2/bin# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/soft/hbase-1.0.2/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/soft/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 1.0.2, r76745a2cbffe08b812be16e0e19e637a23a923c5, Tue Aug 25 15:59:49 PDT 2015
输入 help 然后 可以看到一列shell命令。这里的帮助很详细,要注意的是表名,行和列需要加引号。
创建一个名为 test 的表,这个表只有一个 列族 为 cf。可以列出所有的表来检查创建情况,然后插入些值。
hbase(main):001:0> create 'test','cf'
0 row(s) in 0.5650 seconds
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0980 seconds
hbase(main):006:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0090 seconds
hbase(main):007:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0410 seconds
以上我们分别插入了3行。第一个行key为row1, 列为 cf:a, 值是 value1。HBase中的列是由 列族前缀和列的名字组成的,以冒号间隔。例如这一行的列名就是a.
检查插入情况.
Scan这个表,操作如下
hbase(main):008:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1495265400699, value=value1
row2 column=cf:b, timestamp=1495265440355, value=value2
row3 column=cf:c, timestamp=1495265449951, value=value3
3 row(s) in 0.0260 seconds
Get一行,操作如下
hbase(main):005:0> get 'test','row1'
COLUMN CELL
cf:a timestamp=1495265400699, value=value1
1 row(s) in 0.0510 seconds
disable 再 drop 这张表,可以清除你刚刚的操作
hbase(main):006:0> disable 'test'
0 row(s) in 1.2640 seconds
hbase(main):007:0> drop 'test'
0 row(s) in 0.2040 seconds
关闭shell
hbase(main):008:0> exit
root@s0:/usr/soft/hbase-1.0.2/bin#
root@s0:/usr/soft/hbase-1.0.2/bin# ./stop-hbase.sh
stopping hbase....................
root@s0:/usr/soft/hbase-1.0.2/bin# jps
3078 NameNode
6540 Jps
3356 ResourceManager