首页 > 其他 > 详细

Hbase学习笔记

时间:2018-10-30 00:15:52      阅读:196      评论:0      收藏:0      [点我收藏+]

 


一,Hbase概述

  HBase是建 立在 HDFS 之上,被设计用来提供高可靠性、高性能、列存储、可伸缩、多版本的 NoSQL 的分布式数据存储系统,实现对大型数据的实时、随机的读写访问。

  HBase 依赖于 HDFS 做底层的数据存储, 依赖于 MapReduce 做数据计算, 依赖于 ZooKeeper 做服务协调。

  它介于 NoSQL 和 RDBMS 之间,仅能通过主键(rowkey)和主键的 range 来检索数据。HBase 查询数据功能很简单,不支持 join 等复杂操作。 不支持复杂的事务,只支持行级事务(可通过 hive 支持来实现多表 join 等复杂操作)。HBase 中支持的数据类型:byte[](底层所有数据的存储都是字节数组)主要用来存储结构化和半结构化的松散数据。

  HBase 中的表特点
  大:一个表可以有上十亿行,上百万列。
  面向列:面向列(族)的存储和权限控制,列(簇)独立检索。
  稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
  无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一 张表中不同的行可以有截然不同的列。

 

二,Hbase的结构

  Rowkey的概念和mysql中的主键是完全一样的,Hbase使用Rowkey来唯一的区分某一行的数据。

  Column的概念,列,可理解成MySQL列。

  ColumnFamily的概念,列族, HBase引入的概念。Hbase通过列族划分数据的存储,列族下面可以包含任意多的列,实现灵活的数据存取
  TimeStamp的概念,TimeStamp对Hbase来说至关重要,因为它是实现Hbase多版本的关键。在Hbase中使用不同的timestame来标识相同rowkey行对应的不通版本的数据。
  单元格(Cell),由{rowkey, column( = + ), version} 唯一确定的单元。 Cell 中的数据是没有类型的,全部是字节码形式存贮。
 
三,Hbase shell操作入门
  进入shell客户端:hbase shell
  推出shell客户端:exit

  HBase表的操作:  
  创建表:create ‘表名‘,{NAME => ‘列簇名‘,VERSIONS => 版本号}
  查看表:list
  查看表的详细信息:desc ‘表名‘
  修改表的定义alter:
  添加一个列簇:alter ‘表名‘,NAME => ‘列簇名‘
  删除一个列簇:alter ‘表名‘,NAME => ‘列簇名‘, METHOD => ‘delete‘
  或者:alter ‘表名‘,‘delete‘ => ‘myCard‘
  添加列簇的同时修改列簇:alter ‘表名‘,{NAME => ‘列簇‘},{NAME => ‘列簇‘,METHOD => ‘delete‘}
  清空表:truncate ‘表名‘  
  删除表:先停用表:disable ‘表名‘  再删除表:drop ‘表名‘
  HBase表中数据的操作:
  增put: put ‘表名‘ ,‘rowkey‘,‘列簇名:字段名‘,‘字段值‘
  查get + scan:get ‘表名‘,‘rowkey‘,‘列簇名‘
  查询表中的所有信息:scan ‘表名‘   scan ‘表名‘,{COLUMNS => ‘列簇名‘}
  删delete:delete ‘表名‘,‘rowkey‘,‘列簇名:字段名‘
 

Hbase学习笔记

原文:https://www.cnblogs.com/songweideboke/p/9874068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!