天天看点

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

hbase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是hbase基于列的而不是基于行的模式。

hbase的官方网站http://www.apache.org/dyn/closer.cgi/hbase/上面可以下载到各种版本。目前用最新版本是0.98.2,建议下载stable目录下的稳定版本。

安装依赖基础要求

1.   linux操作系统

根据hbase的官方介绍,hbase没有在windows下测试过,因而,我们都是将hbase安装在linux操作系统上。我本机安装的ubuntu 12.04的虚拟机。

2.   jdk

hbase需要jdk支持其运行,jdk版本要求是1.6及其以上。

这里暂且把linux虚拟机的安装和虚拟机上jdk的安装过程跳过,可以参照网上其他相关资料执行。

hbase的安装方法比较简单,将我们下载的hbase的安装包hbase-0.94.20.tar.gz拷贝到linux的根目录下。

接着执行以下命令和配置,之后启动hbase:

1.   解压缩安装包

root@ubuntu:/# tar xfz hbase-0.94.20.tar.gz

root@ubuntu:/# cd hbase-0.94.20

2.   配置数据存储目录

正如官方文档描述的那样,这时我们可以直接启动hbase,这样的话,使用的数据存储目录为 /tmp/hbase-${user.name},也就意味着,我们一旦重启linux,我们先前存储的数据就将丢失。

linux下执行以下命令:

root@ubuntu:/# cd /hbase-0.94.20/conf/

root@ubuntu:/hbase-0.94.20/conf# vi hbase-site.xml

之后,修改配置文件内容为:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>

<configuration>

  <property>

   <name>hbase.rootdir</name>

    <value>file:///hbase_data/hbase</value>

  </property>

</configuration>

3.   启动hbase

root@ubuntu:/hbase-0.94.20/conf# ../bin/start-hbase.sh

starting master, logging to/hbase-0.94.20/bin/../logs/hbase-root-master-ubuntu.out

至此,单机模式启动hbase已经完成了。hbase的停止脚本是相同目录下的stop-hbase.sh。

在上一节中我们提到,我们安装的是单机模式。单机模式表示,我们所有的服务都运行在一个jvm上,包括hbase和zookeeper。

另外,hbase还有两种安装模式:伪分布式模式和分布式模式。

伪分布式模式是把进程运行在一台机器上,但不是一个jvm。

完全分布式模式就是把整个服务被分布在各个节点上了 。

伪分布式模式和分布式模式依赖安装较多其他组件和服务,安装过程较为复杂,将会在另一篇文章中专门介绍。

大多数技术人员happy的时候开始了。我们开始一个简单的helloworld。

使用hbase自带的客户端连接工具,连接到hbase:

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

输入以下命令并执行:

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

往user表中插入一条信息:

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

查询刚才插入的信息:

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

我们看一下之前我们配置的数据存储目录的变化:

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

我们可以看到,在之前配置的数据存储目录下,已经新添加了一些用于存储我们刚才存入的数据的文件了。

hbase是一个数据库,数据以表的形式存储在hbase中。

正如我们在hello world中定义中的user表类似,hbase的表的结构如下所示:

row key

time stamp

columnfamily contents

columnfamily anchor

"com.cnn.www"

t9

anchor:cnnsi.com = "cnn"

t8

anchor:my.look.ca = "cnn.com"

t6

contents:html = "<html>..."

t5

t3

行以rowkey作为唯一标示。rowkey是一段字节数组,这意味着,任何东西都可以保存进去,例如字符串、或者数字。行是按字典的排序由低到高存储在表中。

列族是列的集合。要准确表示一个列,需要“列族:列名”的方式。例如hello world中的name列,应该被表示为“personalinfo:name”。

值得注意的是,列族被要求在创建表时指定,但列不需要,可以随时使用的时候创建。另外,一个列族的成员在文件系统上都存储在一起,因而列族中的所有列的存取方式都是一致的。hbase的存储优化就都针对列族级别,例如,我们可以考虑将经常需要一起取出来分析的信息,都存储在一个列族上。

为了方便大家开发过程中快速查询,这里分类介绍最常见的hbase命令。hbase shell中支持的所有命令,可以通过help命令来列举出来。如下所示:

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

这里只是截取了前部分命令,尚有部分命令不能再上图中显示。

功能:查询服务器状态

使用:

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:查询hbase版本信息

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:查看连接的用户

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:创建一个表。正如之前提到的,创建一个表时,不指定具体的列名,但要指定列族名。

使用:create ‘表名’,’列族名1’,’列族名2’

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:失效一个表。当需要修改表结构、删除表时,需要先执行此命令。

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:使表有效。在失效表以后,需要执行此命令,以使得表可用。

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:修改表结构,包括新增列族、删除列族等

新增列族(记得在执行alter之前,要先disable表)

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

删除列族

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

重命名列族

列族不能被重命名。重命名一个列族的通常途径是使用api创建一个有着期望名称的新的列族,然后将数据复制过去,最后再删除旧的列族。

功能:查看表结构

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:查看数据库中所有的表

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:删除指定的表

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:插入一条数据到指定的表中。对于同一个rowkey,如果执行两次put,则第二次被认为是更新操作。

使用:put ‘表名’,’列族名1:列名1’,’值’

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:获取数据

获取指定rowkey的指定列族指定列的数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

获取指定rowkey的指定列族所有的数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

获取指定rowkey的所有数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

获取指定时间戳的数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:计算表的行数

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

详见5.3.1

功能:扫描全表所有数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:删除表中的数据

删除指定rowkey的指定列族的列名的数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

删除指定rowkey的指定列族的数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:删除整行数据

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作

功能:删除表中所有的数据。正如你看到的,在hbase的help命令里并没有

HBase使用教程1     基本介绍2     安装和使用3     开始一个例子4     HBase基础定义和概念5     HBase常用的操作