安装
挑选一个Apache Download Mirror(Apache下载镜像,网址为http://www.apache.org/dyn/closer.cgi/hbose),下载一个HBase的稳定发布版本,然后在本地文件系统 解压。示例如下:
% tar xzf hbase-x.y.z.tar.gz
和用Hadoop —样,首先需要告诉HBase系统中的Java在哪里。如果设置了JAVA_HOME环境变量,把它指向了正确的Java安装,HBase则会使用那个Java安 装。这样便不需要进行其他配置。否则,可以通过编辑HBase的ccmf/hbase- env.sh,把JAVA_HOME变量指向Java 1.6.0版本,从而设置 HBase所使用的Java安装。
为了方便,把HBase的二进制文件目录加入命令行路径中。示例如下:
% export HBASE_HOME=/home/hbase/hbase-x.y.z % export PATH=$PATH:$HBASE_HOHE/bin
测试驱动
要启动一个使用本地文件系统/tmp目录作为持久化存储的HBase临时实例,键入 以下命令:
% start-hbase.sh
这会启动一个独立(standalone)的 HBase实例。它使用本地文件系统作为持久化存 储。默认情况下,HBase会使用/tmp/hbase-$USERID 要管理HBase实例,键入以下命令启动HBase 外壳环境(shell)即可:
% hbase shellHBase Shell; enter 'help<RETURN>' for list of supported commands.Type,’ exit<RETURN>,, to leave the HBase ShellVersion: 0.89.0-SNAPSHOT, ra4eala9a7b074a2e5b7b24f761B02d4ea28edlb2, Sun Jul 1815:01:50 PDT 2010 hbase(main):001:0>
这将启动一个加入一些HBase特有命令的Jruby IRB解释器。输入help然后按RETURN键可以查看已分组的外壳环境的命令列表。输入help COMMAND_GROUP 可以查看某一类命令的帮助,而输入help COMMAND则能获得某个特定命令的帮助 信息和用法示例。命令使用Ruby的格式来指定列表和目录。主帮助屏幕的最后包 含一个快速教程。 现在,让我们创建一个简单的表,添加一些数据,再把表清空。 要新建一个表,必须对你的表命名,并定义其模式。一个表的模式包含表的属性和 一个列族的列表。列族本身也有属性。可以在定义模式时依次定义它们。列族的属性示例包括列族是否应该在文件系统中压缩存储,一个单元格要保存多少个版本等。模式可以修改,需要时把表设为“离线”(offline)即可,外壳环境申使用disable命令可以把表设为离线,使用alter命令可以进行必要的修改,而enable命令则可以把表重新设为“在线”(online)。
要想新建一个名为test的表,使其只包含一个名为data的列,表和列族属性都为默认值,则键入以下命令:
hbase(main):007:0> create 'test', 'data'0 row(s) in 1.3066 seconds
关于如何在定义模式时添加表和列族的属性的示例,可参见help命令的输出。为了验证新表是否创建成功,运行list命令。这会输出用户空间中的所有表:
hbase(main):019:0> listtestrow(s) in 0.1485 seconds
要插入在列族而如上不同行和列的三项数据,并列出表的内容,输入如下:
hbase(main):021:0>0 row(s) in 0.0454hbase(main):022:0>0 row(s) in 0.0035hbase(main):023:0>0 row(s) in 0.0090hbase(main):024:0>ROW COLUMN+CELLrowl column=data:1, timestamp=1240148026198, value-value1row2 column=data:2, timestamp=1240148040035, value=value2row3 column-data:3, timestamp=1240148047497, value=value33 row(s) in 0.0825 seconds
请注意我们是如何做到在添加三个新列的时候不修改模式的。要移除这个表,必须在丢弃它前,首先把它设为禁用:
hbase(main):025:0> disable 'test'09/04/19 06:40:13 INFO client.HBaseAdmin: Disabled test0 row(s) in 6.0426 secondshbase(main):026:0> drop 'test'09/04/19 06:40:17 INFO client.HBaseAdmin: Deleted test0 row(s) in 0.0210 secondshbase(main):027:0> list
通过运行以下命令来关闭HBase实例:
% stop-hbase.sh