hbase基础shell操作

一 基础理论
Hbase是一个非分布式的,面向列的开源数据库
基于BigTable
非结构化
存储在HDFS上,备份机制
线性扩展
cluster / slave
Hmaster
Regionserver
Hbase架构图:
 
组件功能:
 
Hbase数据模型:
NameSpace
Rowkey
family_columns . hbase 表中的每个列,都归属与某个列族。列族是表的 schema 的一部分(而列不是),必须在 使用表之前定义。 列名都以列族作为前缀。例如 courses:history , courses:math 都属于 courses 这个列族。 访问控制、磁盘和内存的使用统计都是在列族层面进行的。列族越多,在取一行数据时所要参与 IO、搜寻的文件就越多,所以,如果没有必要,不要 设置太多的列族 
(每个列族存放在不同的文件中,建表时列族越少越好)
TimeStamp
cell 没有数据类型,都是字节码的形式, cell有多版本,Rowket和列唯一确定cell,cell的版本通过时间戳来索引
为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担, hbase 提供了两种数据版 本回收方式: 
       保存数据的最后 n 个版本
      保存最近一段时间内的版本(设置数据的生命周期 TTL)。
用户可以针对每个列族进行设置。
二 基本操作
列出所有表:list
 
创建表:第一种:列族设置默认属性 create 'userInfo', 'baseInfo', 'extrInfo'
    第二种:设置列族属性 create 'userInfo', { NAME => 'baseInfo', VERSIONS => 3 }, { NAME => 'extrInfo', VERSIONS => 2}
增加删除列族:(在表有数据的情况下,要先disable表,才能alter)
    增加:alter 'userInfo', 'add_family'
           alter 'userInfo', { NAME => 'add_new', VERSIONS => 3 }
    删除:alter 'userInfo', 'delete'=> 'add_family'
         alter 'userInfo', { NAME => 'add_new', METHOD => 'delete' }
 
 
 
 
表失效:is_disable 判断表是否失效
    is_enable 判断表是否有效
    disable 使表失效
    enable 使表生效
 
 
  删除表:drop 'userInfo' (删除之前要先disable)
 
插入数据:可以指定时间戳
  put 'user_info', 'rk001', 'base_info:name', 'Rose'
  put 'user_info', 'rk001', 'base_info:age', 20, 1535359300000
 
查询数据:
  get : 指定rowkey查询单条数据
  scan:指定条件,获取批量数据
  详情见 help 指定
 
 
删除数据:指定 rowkey ,指定时间戳
 
清空表数据:truncate 'user_info'

原文地址:https://www.cnblogs.com/mlxx9527/p/9668922.html