HBase 是Hadoop的一个子项目,HBase采用了Google BigTable的稀疏的,面向列的数据库实现方式的理论,建立在hadoop的hdfs上,一方面里用了hdfs的高可靠性和可伸缩行,另外一方面里用 了BigTable的高效数据组织形式.可以说HBase为海量数据的real-time相应提供了很好的一个开源解决方案。

HBase提供了一个类似于mysql等关系型数据库的hbase shell,通过该hbase shell可以对HBase的内的相关表、列族等进行操作;HBase shell的help命令比较详细的列介绍了HBase所支持的命令.具体使用方法可以参见其API文档。

在这里简单举个学生表scores的案例进行讲解,表数据如下:
name grad      course:math   course:english
Tom    1      89           97
Jerry  2          100          90

这里grad对于表来说是一个列,course对于表来说是一个列族,这个列族由两个列组成:math和english,当然我们可以根据我们的需要在course中建立更多的列族,如computer,physics,art等相应的列添加入course列族中。

下面列出常使用的hbase shell 命令如下:

名称

命令表达式

创建表

create '表名称', '列名称1','列名称2','列名称N'

添加记录

put '表名称', '行名称', '列名称:', '值'

查看记录

get '表名称', '行名称'

查看表中的记录总数

count  '表名称'

删除记录

delete  '表名' ,'行名称' , '列名称'

删除一张表

先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步  drop '表名称'

查看所有记录

scan "表名称"

查看某个表某个列中所有数据

scan "表名称" , ['列名称:']

更新记录

就是重写一遍进行覆盖

1、建立一个表格 scores 具有两个列族grad 和courese案例如下:

hbase(main):002:0> create 'scores', 'grade', 'course'
0 row(s) in 4.1610 seconds

2、查看当先HBase中具有哪些表

hbase(main):003:0> list
scores
1 row(s) in 0.0210 seconds

3、查看表的构造

hbase(main):004:0> describe 'scores'
{NAME => 'scores', IS_ROOT => 'false', IS_META => 'false', FAMILIES => [{NAME => 'course', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}, {NAME => 'grade', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}]}
1 row(s) in 0.0130 seconds

4、 加入一行数据,行名称为 Tom 列族grad的列名为”” 值位1

hbase(main):005:0> put 'scores', 'Tom', 'grade:', '1'
0 row(s) in 0.0070 seconds

5、给Tom这一行的数据的列族添加一列 <math,89>

hbase(main):006:0> put 'scores', 'Tom', 'course:math', '89'
0 row(s) in 0.0040 seconds

6、给Tom这一行的数据的列族添加一列 <english,97>

hbase(main):007:0> put 'scores', 'Tom', 'course:english', '97'
0 row(s) in 0.0030 seconds

7、 加入一行数据,行名称为 Jerry 列族grad的列名为”” 值位2

hbase(main):008:0> put 'scores', 'Jerry', 'grade:', '2'
0 row(s) in 0.0040 seconds

8、给Jerry这一行的数据的列族添加一列 <math,100>

hbase(main):009:0> put 'scores', 'Jerry', 'course:math', '100'
0 row(s) in 0.0030 seconds

9、给Jerry这一行的数据的列族添加一列 <english,90>

hbase(main):010:0> put 'scores', 'Jerry', 'course:english', '90'
0 row(s) in 0.0050 seconds

10、查看scores表中Tom的相关数据

hbase(main):011:0> get 'scores', 'Tom'
COLUMN CELL
course:english timestamp=1224726394286, value=97
course:math timestamp=1224726377027, value=89
grade: timestamp=1224726360727, value=1
3 row(s) in 0.0070 seconds

11、判断表是否enable

hbase(main):012:0>is_enabled 'scores'
true
0 row(s) in 0.0110seconds

12、判断表是否disable

hbase(main):013:0>is_disabled 'scores'
false
0 row(s) in 0.0110seconds

13、删除表scores

hbase(main):014:0>disable 'scores'
0 row(s) in 2.0590seconds hbase(main):030:0>drop 'scores'
0 row(s) in 1.1070seconds

14、查询表是否存在

hbase(main):015:0>exists 'scores'
Table scores doesexist
0 row(s) in 0.1610seconds

15、查看scores表中所有数据

hbase(main):016:0> scan 'scores'
ROW COLUMN+CELL
Tom column=course:english, timestamp=1224726394286, value=97
Tom column=course:math, timestamp=1224726377027, value=89
Tom column=grade:, timestamp=1224726360727, value=1
Jerry column=course:english, timestamp=1224726424967, value=90
Jerry column=course:math, timestamp=1224726416145, value=100
Jerry column=grade:, timestamp=1224726404965, value=2
6 row(s) in 0.0410 seconds

16、查看scores表中所有数据courses列族的所有数据

hbase(main):017:0> scan 'scores', ['course:']
ROW COLUMN+CELL
Tom column=course:english, timestamp=1224726394286, value=97
Tom column=course:math, timestamp=1224726377027, value=89
Jerry column=course:english, timestamp=1224726424967, value=90
Jerry column=course:math, timestamp=1224726416145, value=100
4 row(s) in 0.0200 seconds

来源:http://www.yoodb.com/article/display/146

hadoop中HBase子项目入门讲解的更多相关文章

  1. hadoop中hbase出现的问题

    在安装hbase中出现问题如下: ERROR: Can't get master address from ZooKeeper; znode data == null 解决办法: 1.删除nameno ...

  2. Hadoop中Hbase的体系结构

    HRegion 当一张表中的数据特别多的时候,HBase把表拆成多个块,每个块就是一个HRegion,每个region中包含这个表里的所有行 HRegionServer 数据库的数据存在HDFS文件系 ...

  3. [转载] 详细讲解Hadoop中的简单数据库HBase

    转载自http://www.csdn.net/article/2010-11-28/282614 数据模型 HBase数据库使用了和Bigtable非常相似的数据模型.用户在表格里存储许多数据行.每个 ...

  4. 大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用

    ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知. ...

  5. Hadoop集群中Hbase的介绍、安装、使用

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

  6. 什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么

    什么是Zookeeper,Zookeeper的作用是什么,它与NameNode及HMaster如何协作?在没有接触Zookeeper的同学,或许会有这些疑问.这里给大家总结一下. 一.什么是Zooke ...

  7. Hadoop与HBase中遇到的问题

    1. Hadoop中遇到的问题 曾经所遇到的问题因为没有记录,所以忘了 (1)NameNode没有启动成功, 是因为你对HDFS多次格式化,导致datanode中与namenode中的VERSION文 ...

  8. Zookeeper的作用,在Hadoop及hbase中具体作用

    什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么 一.什么是Zookeeper ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hado ...

  9. spring hadoop 访问hbase入门

    1.  环境准备: Maven Eclipse Java Spring 版本 3..2.9 2. Maven  pom.xml配置 <!-- Spring hadoop --> <d ...

随机推荐

  1. [转]SQL语句优化技术分析

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  2. Android HTTPS(2)HttpURLConnection.getInputStream异常的原因及解决方案

    Common Problems Verifying Server Certificates InputStream in = urlConnection.getInputStream(); getIn ...

  3. javascript 一个关于时间排序的算法(一个页面多个倒计时排序)

    上周要做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页 ...

  4. [HIHO1322]树结构判定(并查集)

    题目链接:http://hihocoder.com/problemset/problem/1322 给一个图,判断这个图是不是一棵树. 判定的方法:首先是连通图,其次所有点的入度都小于等于1. /* ...

  5. STL笔记(4)关于erase,remove

    STL笔记(4)关于erase,remove 你要erase的元素很容易识别.它们是从区间的“新逻辑终点”开始持续到区间真的终点的原来区间的元素.要除去那些元素,你要做的所有事情就是用那两个迭代器调用 ...

  6. POJ 3107 Godfather (树形dp)

    题目链接 虽然题目不难,但是1A还是很爽, 只是刚开始理解错题意了,想了好久. 还有据说这个题用vector会超时,看了以后还是用邻接吧. 题意: 给一颗树,保证是一颗树,求去掉一个点以后的联通块里节 ...

  7. 5个缺失的 JavaScript 数字格式化函数

    /** 下面两个函数都能对浮点数进行四舍五入,保留小数点后两位 **/ function CurrencyFormatted(amount) { var i = parseFloat(amount); ...

  8. gulp some tips

    gulp作为替代grunt的task runner后起之秀,基于nodejs的stream操作模型,大大减少了对磁盘的操作因此大大提高了性能. gulp error handling var gulp ...

  9. 今天发现猎豹浏览器的一个大坑 Request.IsAuthenticated 一直为 false;另外附加原因以及临时的解决方法

    今天掉到了一个大坑里面,爬了1个多小时才发现不是代码的问题,居然是浏览器的问题… 下面是问题的发生过程 单点登陆  有2个站点  http://a.abc.com  http://b.abc.com ...

  10. Linux Autotools

    /********************************************************************** * Linux Autotools * 说明: * 我们 ...