单实例HBase(Standalone HBase)
本文介绍如何在本地文件系统上运行一个单实例HBase,下面的安装和配置步骤主要是为了快速安装和体验HBase,而不是在产品环境下使用HBase。
1.下载
从HBase下载站点列表中选择一个站点下载HBase。
命令示例如下:
wget http://mirror.bit.edu.cn/apache/hbase/stable/hbase-1.2.3-bin.tar.gz
wget http://www-us.apache.org/dist/hbase/stable/hbase-1.2.3-bin.tar.gz.md5
wget http://www-us.apache.org/dist/hbase/stable/hbase-1.2.3-bin.tar.gz.asc
wget http://www-us.apache.org/dist/hbase/KEYS
2.验证和解压
验证
命令执行类似如下:md5 hbase-1.2.3-bin.tar.gz | awk '{print $4}' > mycomputation.md5 awk -F: '{gsub(" ", "");print tolower($2)}' hbase-1.2.3-bin.tar.gz.md5 > extraction.md5 diff mycomputation.md5 extraction.md5 gpg --import KEYS gpg --verify hbase-1.2.3-bin.tar.gz.asc hbase-1.2.3-bin.tar.gz
解压
验证解压下载的文件,并进入其根目录。
命令执行类似如下:tar xzvf hbase-1.2.3-bin.tar.gz cd hbase-1.2.3/
3.设置JAVA_HOME环境变量
修改配置JAVA_HOME
。
注意:
是通过修改文件conf/hbase-env.sh
中的JAVA_HOME
属性变量。
4.编辑conf/hbase-site.xml
conf/hbase-site.xml
是HBase的主配置文件,在单实例HBase运行环境下,主要是修改指定HBase和ZooKeeper的写数据目录。
单实例HBase的hbase-site.xml配置示例如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:////Users/simplelovecs/temp/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/Users/simplelovecs/temp/zookeeper</value>
</property>
</configuration>
上面指定了HBase和Zookeeper的数据保存目录分别为本地文件系统上的file:////Users/simplelovecs/temp/hbase
和/Users/simplelovecs/temp/zookeeper
。
注意:
无需建立上面指定的HBase的数据目录,HBase会自动建立;如果此目录已经存在,则HBase则会尝试做migration。
5.启动HBase
运行bin/start-hbase.sh
来启动HBase,如果一切正常,则控制台会正常打印消息。可以通过jps
命令来验证已经启动了一个名为HMaster进程。
在运行bin/start-hbase.sh
命令之前,确保/etc/hosts配置正确:
- 保证127.0.0.1和localhost对应
- 保证127.0.0.1和主机名对应
主机名可通过命令hostname
得到。
/etc/hosts内容示例如下:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 nothing.attdns.com
执行jps命令验证启动正常示例如下:
nothing:hbase-1.2.3 zhengfq$ jps
3053 HMaster
3134 Jps
6.停止HBase
- 执行命令
bin/stop-hbase.sh
来停止HBase进程。 - 要花不少时间来停止并退出HBase的所有进程,可以使用命令
jps
来查看进程是否已经退出。
HBase Shell使用简介
- 连接到HBase
执行命令bin/hbase shell
进入到HBase的shell环境。
示例如下:
$ ./bin/hbase shell
2016-11-03 18:34:26,549 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
HBase Shell; enter ‘help<RETURN>’ for list of supported commands.
Type “exit<RETURN>” to leave the HBase Shell
Version 1.2.3, rbd63744624a26dc3350137b564fe746df7a721a4, Mon Aug 29 15:13:42 PDT 2016hbase(main):001:0>
- 在HBase的Shell环境下输入
help
命令. - 创建表
使用create
创建表。
示例如下:
hbase(main):001:0> create ‘test’, ‘cf’
0 row(s) in 0.4170 seconds
=> Hbase::Table – test
- 列出表信息
使用list
命令。
示例如下:
hbase(main):002:0> list ‘test’
TABLE
test
1 row(s) in 0.0180 seconds=> [“test”]
- 往表中插入数据
使用put
命令往表中插入数据。
依次插入三条数据。第一条,其中 ‘test’是表名, ‘row1’是键名,’cf:a’中的cf是列族,a是列族下的属性名,’value1’是属性对应的值。
示例如下:
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
- 扫描表获取表中全部数据
使用scan
命令来获取表中所有数据。
示例如下:
hbase(main):008:0> scan ‘test’
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1478170141795, value=value1
row2 column=cf:b, timestamp=1478170149993, value=value2
row3 column=cf:c, timestamp=1478170156635, value=value3
3 row(s) in 0.0430 seconds
- 使用
get
获取单条纪录
示例如下:
hbase(main):009:0> get ‘test’, ‘row1’
COLUMN CELL
cf:a timestamp=1478170141795, value=value1
1 row(s) in 0.0330 seconds
- 禁用表
如果想要删除表、修改表的设置或者其他情形,那么首先要使用disable
命令来禁用表;当然也可以使用enable
来重新允许使用表。
hbase(main):008:0> disable ‘test’
0 row(s) in 1.1820 secondshbase(main):009:0> enable ‘test’
0 row(s) in 0.1770 seconds
- 删除表
使用drop
命令来删除表。
hbase(main):011:0> drop ‘test’
0 row(s) in 0.1370 seconds
- 退出HBase的Shell环境
使用quit
命令退出HBase的Shell环境。