1.1. 快速入门
本手册描述了如何使用本地的文件系统来搭建一个单独的Hbase实例。它会引导你创建表,通过hbase 的shell脚本插入数据,和清空以及关闭你的hbase实例。
在我们继续进行之前, 确保你满足一下的先决条件。
检查IP
HBase需要将ip地址设置为127.0.0.1。 Ubuntu和一些其他发行版, 比如,默认的情况下ip地址会为 127.0.1.1 ,这将会给你带来麻烦.
在/etc/hosts中配置如下内容
127.0.0.1 localhost 127.0.0.1 ubuntu.ubuntu-domain ubuntu
1.1.1. 下载和解压最新的发行版本.
在Apache的官方网站选择下载镜像. 点击置顶的链接. 接下来会跳转到一个HBase的版本链接中。 点击名称为stable的文件夹和接下来下载文件夹中的以.tar.gz结尾的文件到本地文件系统,比如 hbase-0.94.2.tar.gz
.
解压下载的文件到指定的目录。
$ tar xfz hbase-0.94.23.tar.gz $ cd hbase-0.94.23
接下来你可以开始使用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>
Replace DIRECTORY
in the above with the path to the directory you would have HBase and ZooKeeper write their data. By default, hbase.rootdir
is set to /tmp/hbase-${user.name}
and similarly so for the default ZooKeeper data location which means you'll lose all your data whenever your server reboots unless you change it (Most operating systems clear /tmp
on restart).
1.1.2. Start HBase
Now start HBase:
$ ./bin/start-hbase.sh starting Master, logging to logs/hbase-user-master-example.org.out
你现在应该运行一个hbase实例. 在单节点的模式下, HBase在同一个JVM虚拟机上运行所有的进程; 比如所有的HBase和Zookeeper进程。 HBase的日志存放在logs的子文件夹中. 特别是当启动HBase遇到问题的时候可以查看日志。
java是否已经安装?
1.1.3. 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并按下回车键查看列出的shell命令和选项。至少浏览变量和命令行参数是如何在HBase 的shell脚本中如何传参数的。特别注意表名,行,列等等必须使用引号引用。
Create a table named test
with a single column family named cf
. Verify its creation by listing all tables and then insert some values.
hbase(main):003:0> create 'test', 'cf' 0 row(s) in 1.2200 seconds hbase(main):003:0> list 'test' .. 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
在上面的案例中我们插入了三个值,每次一个。第一次插入是第一行,列是cf,值是value1.hbase中的列是由家庭簇--例子中的cf--后面跟着说明和列的限定词(a在这种情况下)
浏览插入表的数据。
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
查看单独的一行
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退出shell命令行。
hbase(main):014:0> exit
1.1.4. 停止HBase
运行脚本停止HBase.
$ ./bin/stop-hbase.sh stopping hbase..............