日期:2014-05-16  浏览次数:20598 次

The Apache HBase Book学习篇(一)

一段时间以来一直在使用Hadoop和Hive进行数据仓库的开发,最近感觉HBase逐渐在实时处理方面能力显示出来,这也是数据开发人员梦寐以求的一件事情,看到Apache上有关于HBase的学习书籍,故想不自量力翻译一番,呵呵~

?Apache HBase是一种分布式的,基于列模式的架构在Apache Hadoop和Apache Zookeeper上的数据库,这个手册是基于HBase 0.90.0版本的,这本手册会介绍包括了HBase的部分内容,更多的内容可以从以上网站上获取:

https://issues.apache.org/jira/browse/HBASE

http://wiki.apache.org/hadoop/Hbase

http://zookeeper.apache.org/

http://hadoop.apache.org/


Chapter?1.?Getting Started

1.1、介绍

??? quick start主要帮助你搭建和运行一个单机的HBase并且使用本地文件系统,No-so-quick-start主要描述如何在分布式模式下让HBase运行在HDFS上。

1.2、quick start

???? 本篇将描述如何在单机上使用本地文件系统运行分布式的HBase实例,它将让你通过HBase提供的HBase Shell工具完成创建一张表、插入一列,然后清除以及关闭HBase实例,这些操作可以在10分钟以内完成。

1.2.1.下载以及解压最新的稳定版本

???? 选择下载的网址,http://www.apache.org/dyn/closer.cgi/hbase/? ,建议国内用户可以通过人人或者北交大的apache镜像进行下载,打开相关的链接,进入到Hbase的下载页面,点击stable,选择以.tar.gz为后缀的文件,比如hbase-0.90.0.tar.gz 下载到本地,最好是在liunx环境中安装HBase或者使用虚拟机。

解压相关文件到指定的目录下面

$ tar xfz hbase-0.90.0.tar.gz
$ cd hbase-0.90.0
?

?现在我们可以开始准备运行HBase了,不过在运行HBase之前,需要现在conf/hbase-site.xml设置你想要将HBase写入什么位置,具体的参数是hbase.rootdir

?

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///DIRECTORY/hbase</value>
  </property>
</configuration>

? 替换掉上面的DIRECTORY使用一个你想要HBase用来存放数据的目录,默认情况下,hbase.rootdir会设置在/tmp/hbase-${user.name}下面,这么意味着如果任何时候你重启你的服务,你将丢失掉你全部的数据(大多数的系统在重启后将会清除掉/tmp下的数据)

1.2.2 Start Hbase

好了,现在可以开始运行HBase了

$ ./bin/start-hbase.sh
starting Master, logging to logs/hbase-user-master-example.org.out

你现在已经运行了Hbase的单机模式,在单机模式下面,HBase运行所有的守护程序在一个JVM下面,包括HBase和Zookeeper的daemons,HBase的日志信息可以logs的子目录下面找到,如果HBase遇到异常情况可以先查看他们。

?提示:确定Java是否已经按照好了?

? ? ? ?? 前面所有的叙述都是建立在你的机器已经安装好了Java 1.6及其以上版本,并且已经配置了正确的路径,可以直接键入java进行操作,如果不满足这些要求,HBase就不能正常运行,在安装Java的过程中,需要先对conf/hbase-env.sh进行配置,需要对已经注释了JAVA_HOME变量进行反注释,并将它设置成为指向你安装的目录,然后重新尝试以上步骤。

1.2.3 Shell Exercises

通过Hbase 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.89.20100924, r1001068, Fri Sep 24 13:55:42 PDT 2010

hbase(main):001:0> 

键入help,然后回车可以将显示shell相关的命令和选项,浏览到help最新的版本描述信息后面,可以看到关于各种命令和变量如何在HBase Shell中输入,特别注意的是表名、列、行等必须加引号表示。

创建一个test表有唯一的column family 为cf,然后通过list命令验证它的存在,并且插入一些值:

hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s