HBase入门

一、数据类型

1.Name Space
>命名空间,类似于mysql中的database,oracle中的用户。Hbase有两个自带的命名空间,hbase和default。
>hbase中存放的是HBase内置的表,default表是用户默认使用的命名空间。
2.Region
> 类似于关系型数据库的表概念。不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。
> 这里一张表可以对应多个Region
> 这就意味着,往HBase写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。
> HBase中的列相对于里面的数据,是动态的,按需的,键值对的。
3.Row
> HBase表中的每行数据都由一个RowKey和多个Column(列)组成,数据是按照RowKey的字典顺序存储的,并且查询数据时之恶能根据RowKey进行检索,所以RowKey的设计十分重要。
4.Column
> HBase中的每个列都由Column Family(列族)和Column Qualifier(列)进行限定。
5.Time Stamp
> 用于标识数据的不同版本(version)每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为写入HBase的时间。
6.Cell
> 存储数据的单元。cell中的数据是没有类型的,全部是字节码形式存储。

二、基本操作命令(重点)

刚才熟悉了HBase的基本表结构,那么现在就来通过常用的基本操作命令,来快速入门看项目把!!!

1.hbase shell基本操作命令
名称 命令表达式
创建表 create ‘表名称’,’列族名称1’,’列族名称2’……
添加记录 put ‘表名称’,’行名称’,’列族名称’,’值’
查看记录 get ‘表名称’,’行名称’
查看表中的记录总数 count ‘表名称’
删除记录 delete ‘表名称’,’行名称’,’列族名称’
删除表 ①disable ‘表名称’
②drop ‘表名称’
查看所有记录 scan ‘表名称’
查看某个表某个列中所有数据 scan ‘表名称’,[‘列族名称’]
更新记录 重写(重新添加)一遍覆盖即可
2.一般操作
  • 1、查询服务器状态
    1
    2
    hbase(main):001:0> status            # 命令
    2 servers,0 dead, 3.0000 average # 执行结果
  • 2、查询hive版本
    1
    2
    hbase(main):002:0> version
    0.92.1-cdh4.0.1,rUnknown,Thu Jun 28 18:09:40 PDT 2012

后面自己看链接

3.和4.

3.DDL操作
  • 1、创建一个表
    create 'ddl',''id','info'
  • 2、获得表的描述
    list
    `describe ‘ddl’
  • 3、删除一个列族

    要先diable表,再delete列族
    disable 'ddl'

  • 4、删除一个表
  • 5、判断表是否enable
  • 6、判断表是否disable
4.DML操作
  • 1、插入记录
  • 2、获取一个id的所有数据
  • 3、获取一个id,一个列族所有的数据
  • 4、获取一个id,一个列族中一个列的所有数据
  • 5、更新一条记录
  • 6、获取时间戳数据
  • 7、全表显示
  • 8、删除id为example的’info:age’字段
  • 9、删除整行
  • 10、给example这个id增加’info:age’字段,并使用counter实现递增
  • 11、获取当前count值
  • 12、清空整个表