HBase部署文档——第1章(译)
1.2. 快速开始
本向导描述如何启动使用本地文件系统的单机版(standlone)HBase。包含创建表(table),通过HBase shell插入行(rows),以及如何清除数据和关闭单机HBase。下面练习应该不超过10分钟(不包含下载安装时间)
在开始之前,确认已阅览先决条件。
Loopback IP
HBase需要loopback IP地址设为127.0.0.1. Ubuntu 和其他发布包,例如,缺省的127.0.1.1,这将会出问题。
/etc/hosts 看起来应该是像下面这样(译注:包含 127.0.0.1 localhost即可)
127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu
1.2.1. 下载并解压最新稳定发行版安装包
l 选择一个下载地址表 Apache Download Mirrors. 选择一个顶部的推荐链接,这样就会选择合适的镜像下载HBase Releases. 选择目录名为stable 并下载后缀为.tar.gz到本地文件系统中; e.g. hbase-0.94.2.tar.gz.
l 解压下载内容并CD到解压后目录。
$ tar xfz hbase-0.95-SNAPSHOT.tar.gz
$ cd hbase-0.95-SNAPSHOT
现在开始HBase启动的准备工作,在启动之前,需要修改 conf/hbase-site.xml, 这个文件是用于和本地机器相关的配置。设置 hbase.rootdir, 该目录HBase 用于写数据文件, hbase.zookeeper.property.dataDir, 这目录则是ZooKeeper写数据的:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///DIRECTORY/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/DIRECTORY/zookeeper</value>
</property>
</configuration>
将上面的 DIRECTORY替换成你自己用于HBase和ZooKeeper写入数据的目录。hbase.rootdir缺省为 /tmp/hbase-${user.name} ,类似的,它也是ZooKeeper 的缺省路径;这也意味着,如果机器重启,将会损丢失所有数据。除非修改为别的目录 (大多数机器重启时都会清空 /tmp)。
1.2.2. 启动 HBase
现在开始启动HBase:
$ ./bin/start-hbase.sh
starting Master, logging to logs/hbase-user-master-example.org.out
你现在应该已经启动了一个单机HBase实例。在单机模式下, HBase 在同一JVM中启动所有 daemons; 例如, HBase 和 ZooKeeper daemons. 可以在logs 子目录查看HBase logs. 如果HBase启动有问题,仔细检查这些日志。
java是否安装了?
上面都假设是已正确Oracle java 1.6版本(译注,Linux默认安装的是Open JDK,虽然也可以使用,但最好是使用Sun的)(参见 Section 2.1.1, “Java”);例如. 输入java命令, 可以看到控制体显示java程序的输入选项(HBase 需要 java 6). 否则, HBase 无法启动. 安装 java, 并修改 conf/hbase-env.sh, 将JAVA_HOME 行注释取消 ,并指向自己的java安装路径,重新尝试上述步骤。
1.2.3. Shell 练习
通过 shell连接到已经启动的HBase
$ ./bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version: 0.90.0, r1001068, Fri Sep 24 13:55:42 PDT 2010
hbase(main):001:0>
输入help 然后 <RETURN> 可以看见shell命令及其命令选项列表,至少浏览下help的下面一段介绍哪些变量和参数可以在HBase shell中使用; 特别是要关注表名,行,和列等怎样被引用。
创建一个名为test且只具有一个单一的名为cf列族(column family)的表。通过列出所有表来检查该表的创建是否成功,然后插入一些值。
hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'test'
正确的命令是
list直接回车
或者 list 'test' ——即list '<table name>'
..
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds
上面我们插入了3个值,一次一个。第一个插入的是row1, column cf:a ,它的值是value1. 在 HBase中,一些Column 组成一个 column family 前缀 – 本例中的cf – 跟在冒号:后面 然手一个列的限定后缀 (本例中的a).
通过运行scan表 来检查插入是否成功。
hbase(main):007:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1288380727188, value=value1
row2 column=cf:b, timestamp=1288380738440, value=value2
row3 column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds
Get a single row
hbase(main):008:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds
Now, disable and drop your table. This will clean up all done above.
hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds
Exit the shell by typing exit.
hbase(main):014:0> exit
1.2.4. 停止 HBase
用stop脚本来停止HBase运行实例.
$ ./bin/stop-hbase.sh
stopping hbase...............
1.2.5. 下一步
上面介绍了单机版的安装,这仅对测试和实验有帮助.下一章, Chapter 2, Apache HBase (TM) Configuration, 我们将深入介绍分布式HBase部署中的关键设置,HBase运行模式和启动HBase的系统要求与单机版的不同之处。