日期:2014-05-16 浏览次数:20971 次
一段时间以来一直在使用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