Hbase的操作


HBase的体系结构
 逻辑结构
  表(table)
   划分数据集合的概念,和传统的db中的表的概念是一样的。
  行健(RowKey):
   一行数据的唯一标示,要想操作(read/write)一条数据,必须通过行健,其在hbase底层都是使用字节数组进行存放,所以方便我们使用rk进行排序,
     行键是字节数组, 任何字符串都可以作为行键;表中的行根据行键进行排序,数据按照Row key的字节序(byte order)排序存储;所有对表的访问都要通过行键 (单个RowKey访问,或RowKey范围访问,或全表扫描)。
  列族(columnFamily)
     简单的认为是一系列“列”的集合。列族是以单独的文件进行存储。
  列限定符(column Qualifier)
     或者叫列。列里面的数据定位通过列限定符 每个CF可以有一个或多个列成员(ColumnQualifier),
     列成员不需要在表定义时给出,新的列族成员可以随后按需、动态加入。时间戳(version)
     在单元格中可以存放多个版本的数据。
  单元格(cell)
     Cell 由行键,列族:限定符,时间戳唯一决定,Cell中的数据是没有类型的,全部以字节码形式存贮,主要用来存储数据。
 物理结构
  HMaster ----->NameNode
   管理节点
  HRegionServer----->DataNode
   存放Region的服务器
  HRegion
   存放hbase中数据的一个概念,可以简单的理解为表,存放一张表中的一部分数据,当该region中的数据超过一定量的时候,会自动进行分裂,
  分裂成两个region(一份为二),从这个角度上而言,Region是对hbase中表的一个横向的划分。
  HFile
   在hdfs上存放数据之前的一个物理结构,用于接收从客户端提交过来的数据。   
-------------------------------------------------------------------------
HBase的操作:
 CLI(Command Line interface):
  使用bin/hbase shell来进入命令终端
  命令:
  list查看当前命名空间下的所有的表,也可以查看特定命名空间下的表
   list 'ns:abc.*' --->查看命名空间ns下面的所有的以表名以abc开头的表的列表
  创建一张表
   create 't1', 'cf1' --->在默认的命名空间下创建一张表名为t1,只有一个列族,列族名为cf1
  查看一张表的所有内容:scan
   scan 't1'或者scan 'ns1:t1'
  往表中增加一条记录:put
   put 't1', '1'(rowkey), 'cf1:name', 'zhangsan'
  查看其中一个具体的值
   get 't1', '1', 'cf1:name'
  查看表的属性信息:
   describe/desc 't1'
  删除记录:delete
   delete 't1', '1', 'cf1:age' -->删除某一个rowkey对应的cf1:age对应的单元格
   deleteall 't1', '2'   -->删除rowkey=2对应的所有的单元格
  删除一张表:
   注意:删除表之前,需要先确认表状态是否为disable,如果不是,需要disable '表名'
   disable 't1'
   drop 't1'
 练习:
  rk column column  cf
   name grad  course
       math art |column
  1 Tom  5  97  87
  2 Jim  4  89  80
  创建表
   create 'stu','name', 'grad','course' --->创建了表stu,有三个列族,name、grad、course
  增加数据:
   put 'stu', '1', ':name', 'Tom'
   put 'stu', '1', ':grad', '5'
   put 'stu', '1', 'course:art', '97'
   put 'stu', '1', 'course:math', '88'
  删除name="Jim"的art成绩
   delete 'stu', '2', 'name', 'Jim', "course:art" --->错误的
   delete 'stu', '2',"course:art" 因为每次操作,只能操作的是单一单元格,hbase的原子性操作是基于单元格的
   而一个单元格的确定是由rk、cf、col、ts
  删除name="JIM"所在的行的而所有单元格
   deleteall 'stu', '2'
  查看当前表有多少条记录:select count(1) from t;
   count
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值