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的系统要求与单机版的不同之处。