Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

一、Hbase shell相关操作

进入Hbase操作
hbase shell
Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

说明:搭建好了大数据平台前提下,并且配置了配置环境变量,直接在任何路径下可用

1、help 帮助命令
   help '命令名字'

Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

1.1、status 查看状态
1.2、version 查看版本
Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

2、hbase中数据库的概念
   namespace(命名空间,相当于传统数据库的DataBases)
2.1、显示所有的数据库(命名空间)
    list_namespace 
    默认  default 库
             hbase

Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)
2.2、显示当前数据库(命名空间)中所有的表
    list_namespace_tables 'hbase'Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)
2.3、创建一个数据库(命名空间)
    create_namespace 'liuwunan'Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)
说明:其实默认的default 完全够用
2.4、描述数据库(命名空间)
    describe_namespace 'liuwunan'
2.5、修改数据库(命名空间)
    alter_namespace
2.6、删除数据库(命名空间)
    drop_namespace 'liuwunan'

3、创建hbase中的表【重点】
    create '表名','列簇'
3.1、基本的建表方式 【默认default库中】
    创建 '表名t1','列簇cf1'
    create 't1','cf1'

Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)
3.2、创建多个列簇【默认default库中】
   create 't1','cf1','cf2'
3.3、指定表所属的数据库
   create 'liuwunan:t1','cf1'
   创建表指定'库为liuwunan:表名t1','列簇为cf1'
3.4、详细描述列簇的相关属性
   create 'liuwunan:t2',{NAME=>'cf1',VERSIONS=>2},{NAME=>'cf2'}
   创建表t2指定数据库库为liuwunan,指定列簇一数据版本号为cf1,列簇2数据版本号为默认3

4、描述表 
   describe 'liuwunan:t1'

5、修改表类簇版本号
   alter 'liuwunan:t2',{NAME=>'cf2',VERSIONS=>2}

6、删除表
    disable 'liuwunan:t2'
    drop 'liuwunan:t2'
  【hbase在删表之前需要先将表挂起,禁用】
  【truncate 'table_name'  是HBase是先将表disable,再drop the table,最后creating table】

7、失效 生效表相关命令
   enable disable 
   enable_all disable_all
   is_enable is_disable

8、判断表是否存在
   exists '表名'

9、表的查找命令
   list 'ns:t.*'

Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)
   查询当前ns库下的ns库下的t开头的所有表

10、 插入数据
    put 't1','rowkey','列簇:字段','值'
    put 'default:Student','13565465702','baseInfo:age','11111111'Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

11、 删除数据指定时间戳某字段的数据
    delete 'ns:t1' ,'rowkey','family:qualify','timestamp'

12、 全表扫描 
    scan '表名' 
    scan 'Student'

Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

13、全表区间扫描
    scan '库名:表名', {STARTROW => '起始RowKey',STOPROW => '结束RowKey'}
    scan 'default:Student',{STARTROW=>'13565465702',STOPROW=>'15778117684'}Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

14、 根据RowKey的查询
    get 'default:Student','13820648931'
Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

15、全表扫描,只展示一条数据【LIMIT】
    scan 'default:Student',{LIMIT => 1}Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

16、更新数据,PUT(RowKey相同,数据覆盖即更新)
    put 'default:Student','13565465702','baseInfo:age','11111111'Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

17、Hbase表总量统计
      count '表名'

Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

18、Scan全表指定列簇扫描
     扫描 '表名','列簇'
     scan 'Student',{COLUMNS=>'baseInfo'}Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

18.1、Scan全表扫描指定列簇和列名
       扫描 '表名',{COLUMNS=>''列簇.字段}
       scan 'Student',{COLUMNS=>'baseInfo:age'}Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

18.2、Scan全表扫描指定多列簇和多字段,并且限制条数
       scan '表名',{COLUMNS=>['列簇1:字段1','列簇2:字段2'],LIMIT=>3}
       scan 'Student',{COLUMNS=>['baseInfo:age','schoolInfo:name'],LIMIT=>3}Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

18.3、限制时间范围
       scan 'Student',{TIMERANGE=>[1448045892646,1848045892647]}Hadoop大数据系列之NoSql海量数据库Hbase入门Shell篇(二)

2.filter 过滤部分

PrefixFilter:rowKey前缀过滤
scan 'Student',{FILTER=>'PrefixFilter('135')'}

QualifierFilter:列过滤器
QualifierFilter对列的名称进行过滤,而不是列的值。
scan 'Student',{FILTER=>"PrefixFilter('1') AND QualifierFilter(>=,'binary:b')"}
TimestampsFilter:时间戳过滤器
scan 'Student',{FILTER=>"TimestampsFilter(1448069941270,1548069941230)"}

 

 

二、Hbase Java AP接口相关操作