HBase的shell基本命令

本文详细介绍了HBase的Shell操作,包括DDL(数据库定义语言)和DML(数据操作语言)命令。内容涵盖创建、删除namespace,管理表,数据的插入、更新、查询、删除等操作,以及使用scan命令进行条件查询和统计功能。通过这些命令,可以高效地对HBase数据库进行管理和操作。
摘要由CSDN通过智能技术生成

本章主要学习HBase的shell基本命令操作


DDL 命令

1. 启动HBase shell

hbase shell
在这里插入图片描述

2. 查看帮助命令

help 命令
如:help ‘create_namespace’
在这里插入图片描述

  • DDL:数据库命令

Group name: namespace
Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables

  • DDL:表命令

Group name: ddl
Commands: alter, alter_async, alter_status, clone_table_schema, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, list_regions, locate_region, show_filters

  • DML:数据操作命令

Group name: dml
Commands: append, count, delete, deleteall, get, get_counter, get_splits, incr, put, scan, truncate, truncate_preserve

  • 工具命令

Group name: tools
Commands: assign, balance_switch, balancer, balancer_enabled, catalogjanitor_enabled, catalogjanitor_run, catalogjanitor_switch, cleaner_chore_enabled, cleaner_chore_run, cleaner_chore_switch, clear_block_cache, clear_compaction_queues, clear_deadservers, close_region, compact, compact_rs, compaction_state, flush, is_in_maintenance_mode, list_deadservers, major_compact, merge_region, move, normalize, normalizer_enabled, normalizer_switch, split, splitormerge_enabled, splitormerge_switch, stop_master, stop_regionserver, trace, unassign, wal_roll, zk_dump

退出
exit

3.列举所有的namespace
  • 命令:list_namespace
  • 语法:list_namespace
  • 示例:list_namespace
4.列举namespace的所有表
  • 命令:list_namespace_tables
  • 语法:

    list_namespace_tables 'namespace的名称'

  • 示例:

    list_namespace_tables 'hbase'
    在这里插入图片描述

5.创建namespace
  • 命令:create_namespace
  • 语法:

create_namespace 'namespace的名称'

  • 示例:

create_namespace ‘t1’

6.删除namespace
  • 命令:drop_namespace
    注意:只能删除空数据库,如果数据库中存在表,不允许删除
  • 语法:drop_namespace 'namespace的名称'
  • 示例:drop_namespace ‘t1’
7. 查看表
  • 命令:desc
  • 语法:desc '表名'
  • 示例:

desc ‘t1’

8.删除表
  • 命令:drop
  • 语法:drop ‘表名’
  • 示例:drop ‘t1’
    注意:如果要对表进行删除,必须先禁用表,在删除表
8.1 禁用/启用表
  • 命令:disable/enable
  • 功能:
  • Hbase为了避免修改或者删除表,这张表正在对外提供读写服务
  • 规则:修改或者删除表时,必须先禁用表,表示这张表暂时不能对外提供服务
  • 如果是删除:禁用以后删除
  • 如果是修改:先禁用,然后修改,修改完成以后启用
  • 语法:

disable ‘表名’ ==>禁用表
enable ‘表名’ ==>启用表

9. 判断表是否存在
  • 命令:exists
  • 语法:exists ‘表名’
  • 示例:

exists ‘t1’
在这里插入图片描述

DML 命令

1. put 插入/更新数据
  • 功能:插入/更新数据【某一行的某一列】
  • 语法:

put NS名称:表的名称,'Rowkey','列族:列','值'
put ‘ns1:t1’, ‘r1’, ‘cf:c1’, ‘value’

  • 注意:
    put :如果不存在,就插入,如果存在就更新
    • 写入的数据按照Rowkey进行了排序:按照Rowkey的字典顺序进行排序

    • 每个rowkey内部按照列做了排序

    • Hbase中的更新是假的,伪更新

    • 只是让用户看起来更新了,但实际没有更新

    • 实现更新数据时,插入了一条新的数据,老的数据被标记为更新不显示,没有被真正删除

    • 只显示最新的数据,不显示老的数据

2.get 命令
  • 功能:读取某个Rowkey的数据
    • 注意:缺点:get命令最多只能返回一个rowkey的数据,根据Rowkey进行检索数据
    • Rowkey作为Hbase的唯一索引,按照rowkey是走索引的
    • 优点:Get是Hbase中查询数据最快的方式
  • 语法:

get 表名 rowkey [列族,列]
get ‘ns:tbname’,‘rowkey’
get ‘ns:tbname’,‘rowkey’,[cf]
get ‘ns:tbname’,‘rowkey’,[cf] | [cf:col]

3. scan
  • 功能:根据条件匹配读取多个Rowkey的数据

  • 语法:
    ·scan ‘tbname’//一般不用
    ·scan ‘tbname’,{Filter} //用到最多

  • 示例:
    scan ‘itcast:t2’
    #rowkey前缀过滤器
    scan ‘itcast:t2’, {ROWPREFIXFILTER => ‘2021’}
    scan ‘itcast:t2’, {ROWPREFIXFILTER => ‘202101’}
    #rowkey范围过滤器
    #STARTROW:从某个rowkey开始,包含,闭区间
    #STOPROW:到某个rowkey结束,不包含,开区间
    scan ‘itcast:t2’,{STARTROW=>‘20210101_000’}
    scan ‘itcast:t2’,{STARTROW=>‘20210201_001’}
    scan ‘itcast:t2’,{STARTROW=>‘20210101_000’,STOPROW=>‘20210201_001’}
    scan ‘itcast:t2’,{STARTROW=>‘20210201_001’,STOPROW=>‘20210301_007’}

  • 注意

  • 在Hbase数据检索,尽量走索引查询:按照Rowkey条件查询
  • 尽量避免走全表扫描
  • 索引查询:有一本新华字典,这本字典可以根据拼音检索,找一个字,先找目录,找字
  • 全表扫描:有一本新华字典,这本字典没有检索目录,找一个字,一页一页找
  • Hbase所有Rowkey的查询都是前缀匹配
4. delete 命令
  • 功能:删除HBase中的数据
  • 语法:

#删除某列的数据
delete tbname,rowkey,cf:col
#删除某个rowkey数据
deleteall tbname,rowkey
#清空所有数据
truncate tbname

5. incr 命令
  • 功能:一般用于自动计数的,不用管记住上一次的值,直接做自增
  • 语法:

incr ‘表名’,‘rowkey’,‘列族:列’
get_counter ‘表名’,‘rowkey’,‘列族:列’

  • 示例:

create ‘NEWS_VISIT_CNT’, ‘C1’
incr ‘NEWS_VISIT_CNT’,‘0000000001_00:00-01:00’,‘C1:CNT’,12
get_counter ‘NEWS_VISIT_CNT’,‘0000000001_00:00-01:00’,‘C1:CNT’
incr ‘NEWS_VISIT_CNT’,‘0000000001_00:00-01:00’,‘C1:CNT’

6. count 命令
  • 功能: 统计某张表的行数【rowkey的个数】
  • 语法:count ‘表名’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值