`
小码哥BASE64
  • 浏览: 124581 次
社区版块
存档分类
最新评论

HBase使用教程

阅读更多

1     基本介绍

1.1 前言

HBase – Hadoop Database,是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。

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

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构存储集群。

2     安装和使用

2.1 下载

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

2.2 安装

安装依赖基础要求

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。

2.3 HBase安装模式

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

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

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

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

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

3     开始一个例子

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

3.1 使用HBase shell连接HBase

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

 

3.2 创建User表

输入以下命令并执行:

 

3.3 对User表简单地增删改查

往User表中插入一条信息:

 

 

查询刚才插入的信息:

 

 

3.4 检查数据存储目录

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

 

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

 

4     HBase基础定义和概念

4.1 表

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

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

Row Key

Time Stamp

ColumnFamily contents

ColumnFamily anchor

"com.cnn.www"

t9

 

anchor:cnnsi.com = "CNN"

"com.cnn.www"

t8

 

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

"com.cnn.www"

t6

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

 

"com.cnn.www"

t5

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

 

"com.cnn.www"

t3

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

 

4.2 行、列族、列

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

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

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

5     HBase常用的操作

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

 

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

5.1 一般命令

5.1.1 status

功能:查询服务器状态

使用:

 

 

5.1.2 version

功能:查询HBase版本信息

使用:

5.1.3 whoami

功能:查看连接的用户

使用:

 

 

5.2 DDL命令

5.2.1 Create创建表

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

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

 

5.2.2 disable失效表

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

使用:

 

5.2.3 enable使失效表有效

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

使用:

 

5.2.4 alter修改表结构

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

使用:

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

 

删除列族

 

 

重命名列族

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

5.2.5 describe查看表结构

功能:查看表结构

使用:

 

 

5.2.6 list列举数据库中的所有表

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

使用:

 

 

5.2.7 drop删除表

功能:删除指定的表

使用:

 

5.3 DML命令

5.3.1 put插入数据

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

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

 

5.3.2 get获取数据

功能:获取数据

使用:

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

 

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

 

获取指定rowkey的所有数据

 

 

获取指定时间戳的数据

 

5.3.3 Count计算表的行数

功能:计算表的行数

使用:

 

5.3.4 put更新数据

详见5.3.1

5.3.5 scan全表扫描数据

功能:扫描全表所有数据

使用:

 

5.3.6 delete删除数据

功能:删除表中的数据

使用:

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

 

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

 

5.3.7 deleteall删除整行数据

功能:删除整行数据

使用:

 

5.3.8 truncate删除全表数据

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

使用:

分享到:
评论

相关推荐

    Apache HBase开发者教程

    Apache HBase开发者教程 100多页PPT 2016 strata+Hadoop大会资料

    Hadoop和Hbase安装使用教程

    ### Hadoop和Hbase安装使用教程 #### 一、准备工作 在正式开始Hadoop和HBase的安装之前,我们需要做一些准备工作。这些准备包括了安装必要的软件环境,例如虚拟机环境和SSH客户端,以及对虚拟机的基本配置。 ####...

    Hadoop&Hbase安装完美教程

    总的来说,这个教程覆盖了从零开始安装和使用Hadoop及HBase的全过程,对希望涉足大数据领域的学习者非常有价值。通过实践这些步骤,用户可以搭建起一个运行良好的Hadoop-HBase环境,为后续的大数据操作和分析奠定...

    大数据HBASE视频教程-免费

    这里是一套关于Hadoop架构中数据存储HBASE的教学视频,希望大家可以一起学习!

    Hbase实战教程

    电子书,hbase的教程,学习的好工具,值得下载

    HBase中文教程 PDF 下载

    《HBase中文教程》是一本深入浅出介绍分布式列式数据库HBase的书籍,主要针对使用Java编程语言的开发者。HBase是构建在Hadoop文件系统(HDFS)之上的开源NoSQL数据库,专为处理大规模数据而设计。它提供了高可靠性、...

    HBase视频教程下载|基于微博数据应用的HBase实战开发

    本教视从实战角度出来,向学员们手把手掌握HBase使用精髓,让学员达到如下目标: 1. 了解分布式存储的原理及架构。 2. 掌握如何使用HBase实现海量数据存储与检索。 3. 掌握HBase在开发中常见的技术大坑与调优技术...

    HBase中文教程.pdf

    在使用HBase时,用户可以利用HBase提供的Java API方便地进行开发。HBase与Hadoop生态系统紧密集成,允许HBase的数据直接存储在HDFS上,同时也支持从HBase读取数据进行MapReduce作业处理。 总结来说,HBase是适用于...

    HBASE 完整教程.docx

    在HBase中,它是分布式大数据存储的一个关键组件,尤其适合实时读取大量稀疏、多维度数据的应用场景。HBase的架构设计确保了高可扩展性和高性能。表在HBase中是按照区域(Region)进行分割的,每个区域由一个区域...

    大数据开发之Hbase基本使用及存储设计实战教程(视频+笔记+代码)

    │ Day15[Hbase 基本使用及存储设计].pdf │ ├─02_视频 │ Day1501_Hbase的介绍及其发展.mp4 │ Day1502_Hbase中的特殊概念.mp4 │ Day1503_Hbase与MYSQL的存储比较.mp4 │ Day1504_Hbase部署环境准备.mp4 │ Day...

    hbase权威教程

    《HBase权威教程》是针对分布式列式数据库HBase的一份详尽学习资料,它包含了两部分核心内容:《HBase权威指南中文版》和《HBase实战(中文扫描版)》。这两部分资料旨在帮助读者深入理解HBase的设计原理、操作实践...

    HBase单机版部署教程

    HBase单机版部署教程 HBase是一种基于Hadoop的分布式、面向列的NoSQL数据库,它提供了高性能、可扩展、灵活的数据存储解决方案。下面是HBase单机版部署的详细教程: 安装JDK 首先,我们需要安装JDK,因为HBase...

    基于springboot集成hbase过程解析

    下面是一个使用注解方式配置HBase的示例: ```java @Configuration public class HBaseConfiguration { @Value("${hbase.zookeeper.quorum}") private String zookeeperQuorum; @Value("${hbase.zookeeper....

    hbase 教程 简单易懂 初学者必备

    《HBase教程:简单易懂,初学者必备》 在大数据处理领域,HBase作为一款分布式、列式存储的NoSQL数据库,因其高效、可扩展的特性,深受广大开发者的青睐。尤其对于初学者而言,掌握HBase的基本概念、操作与应用是至...

    Hbase安装教程.docx

    ### HBase伪分布式模式安装教程 #### 一、概述 HBase是一款开源的、非关系型的分布式数据库,是基于Google Bigtable论文的一种设计。它能够处理非常庞大的数据集,并且支持实时读写访问,非常适合大数据环境下的...

    hbase 视频教程

    完整的hbase视频教程 视频方式为百度网盘 下载文件中提供了下载链接和提取码

    hbase安装和使用

    本资源主要涵盖了HBase的安装与使用,下面将详细介绍这两个方面。 一、HBase安装 1. **系统需求**:HBase通常运行在Linux环境下,因此首先确保你的服务器或开发环境是Linux。同时,需要安装Java Development Kit ...

    Hbase入门教程-高级查询_02

    本文接着上期介绍的”简单了解Hbase及快速入手之入门教程_01“,着重介绍了hbase的伪分布式部署以及hbase的过滤器。适合刚入门或者刚接触的小伙伴参考。

Global site tag (gtag.js) - Google Analytics