hbase的shell使用

进入hbase shell命令行
##在安装的随意台服务器节点上,执行命令:

[hadoop@hadoop01 ~]$ hbase shell

进入之后先别着急,先看一下提示。其实是不是有一句很重要的话:
HBase Shell; enter ‘help’ for list of supported commands.
Type “exit” to leave the HBase Shell
意在告诉怎么获得帮助,怎么退出客户端
在这里插入图片描述

help 获取帮助
help 获取所有命令提示
help "dml" 获取一组命令的提示
help "put" 获取一个单独命令的提示帮助
exit 退出 hbase shell 客户端

下面真正进入命令的操作演示

  1. 通用命令
    status   查看集群状态
    version  查看hbase的版本的
    whoami   查看安装用户的
    
  2. 在hbase中 没有数据库database的概念 替代概念namespace
    1)创建namespace
    create_namespace 'namespace名字'
    例:create_namespace 'ns'
    
    2)查看namespace列表
    list_namespace
    
    3)查看表的详细信息
    describe_namespace 'ns'
    
    4)修改 namespace (针对属性修改的)
    alter_namespace 'ns'
    
    5)删除namespace
    drop_namespace 'ns'
    
  3. ddl
    1)创建表 表名+列族
    语法1: 可以指定每一个列族的属性的
    create 'namespace:表名', {NAME => '列族的名'}, {NAME => '列族2的名字'}, {NAME => '列族3的名字'}
    例:
    	create 'ns:test01',{NAME => 'info01'},{NAME => 'info02'}
    	create 'ns:test02',{NAME => 'info01',VERSIONS => 3},{NAME => 'info02'}
    
    语法2:  使用默认属性
    create '表名', '列族1', '列族2', '列族3'
    例:
    	create 'ns_01','info01','info02'
    
    2)查看表列表
    list 显示所有表
    
    list 'namespace:.*'    查看指定namespace下的所有表
    例:
    	list 'bd1906:.*'
    	
    list 'namespace:n.*'    查看指定namespace下的某些特征的表名
    
    list_namespace_tables 'namespace'查看指定namespace下的所有表
    例:
    	list_namespace_tables 'ns'
    
    3)查看表的详细描述信息
    describe|desc '表名'
    desc 'ns_01'
    
    4)修改表
    添加列族
    	alter '表名', NAME => '新的列族名', VERSIONS => 5
    	alter 'ns:test01',NAME => 'info03', VERSIONS => 2
    
    删除列族
    	alter 'namespace:表名', NAME => '需要删除的列族', METHOD => 'delete'
    	alter 'namespace:表名', 'delete' => '需要删除的列族'
    	
    	alter "ns:test01",NAME => "info01",METHOD => "delete"
    	alter "ns:test01","delete" => "info03"
    
    5)修改表状态信息
    禁用表
    	disable '表名' 禁用某一个表
    	disable_all 'namespace:.*' 禁用指定 namespace 下的所有表
    	
    	disable 'ns:test01'
    	disable_all 'ns:.*'
    
    启用表
    	enable '表名' 启用表
    	
    	enable_all
    
    	enable 'ns:test01'
    	enable_all 'ns:.*'
    
    6)查看表状态
    hbase中表具有两个状态
    enable 启用状态 可以执行任何操作的
    disable 禁用状态 不允许执行写操作
    is_disabled '表名'    查看表是否被禁用  true   false
    is_enabled '表名'     查看表是否被启用  true   false
    is_disabled 'ns:test01'
    is_enabled 'ns:test01'
    
    7)删除表
    想删表先禁用表
    disable|drop 'namespace' 删除指定表
    drop_all 'namespace:.*'  删除指定namespace下的所有表
    
    disable 'ns_01'
    drop 'ns_01'
    
    disable_all 'ns:.*'
    drop_all "ns:.*"
    
  4. dml
    1)数据插入
    每一次只能插入一行的一列
    hbase> put 'namespace:表名', '行健', '列族:列名', '列的值', 时间戳
    
    put 'user:test01','rk001','info01:name','zs'
    put 'user:test01','rk001','info02:name','ww'
    put 'user:test01','rk001','info02:age','15'
    put 'user:test01','rk000','info01:age','13'
    put 'user:test01','rk0000','info01:age','13'
    
    2)扫描查询,一次返回多条数据
    hbase> scan 'namespace:表名'  全表扫描
    hbase> scan 'namespace:表名', {COLUMNS => ['c1', 'c2']}  指定扫描的列
    hbase> scan 'namespace:表名', {COLUMNS => ['c1', 'c2'],LIMIT => 10}   指定查询的行数  LIMIT  按照行健排序 返回指定的前几行的数据
    hbase> scan 'namespace:t1', {COLUMNS => ['c1', 'c2'], STARTROW => ,ENDROW => }  指定行健范围  扫描
    hbase> scan 'namespace:t1', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}  指定时间戳范围扫描
    
    scan 'bd1906:test01'
    scan 'bd1906:test01',{COLUMNS => "info01:name"}
    scan 'bd1906:test01',{COLUMNS => ["info01:name","info01:age"]}
    scan 'user_info',{COLUMNS => ["base_info:name","base_info:age"],LIMIT=>10}
    
    scan 'user_info',{STARTROW => "zhangsan_20150701_0001"}  默认到末尾  包含开始行健
    scan 'user_info',{ENDROW => "zhangsan_20150701_0001"}  默认从最开始  不包含结尾行健的
    scan 'user_info',{STARTROW => "zhangsan_20150701_0001",ENDROW => "zhangsan_20150701_0004"}  含头不含尾
    
    scan "user_info",{COLUMNS => "base_info:name",TIMERANGE => [1571642275758,1571642295062]}  时间戳范围  含头不含尾的
    
    3)查询单条数据,一条一个行健
    hbase> get 'namespace:表名', '行健'  查询某一行的所有数据
    hbase> get 'namespace:表名', '行健', {TIMERANGE => [ts1, ts2]} 查询某一行  返回指定时间戳范围的列的值
    hbase> get 'namespace:t1', '行健', {COLUMN => '列'}  查询某一行指定列的数据
    hbase> get 'namespace:t1', '行健', {COLUMN => '列', TIMESTAMP => 时间戳}  指定某一行的某一个列的  某一个时间戳对应的值  cell的定位   
    hbase> get 'namespace:t1', '行健', {COLUMN => '列', VERSIONS => 4}  查询某一行 某一列的 指定版本的数据
    
    get 'user_info','zhangsan_20150701_0001'
    get 'user_info','zhangsan_20150701_0001',{TIMERANGE =>[1571642275758,1571642295063]}   
    
    get "user_info","zhangsan_20150701_0001",{COLUMN => "base_info:name"}
    get "user_info","zhangsan_20150701_0001",{COLUMN => ["base_info:name","extra_info:Hobbies"]}
    
    get "user_info","zhangsan_20150701_0001",{COLUMN => "base_info:name",VERSIONS => 3}
    get "user_info","zhangsan_20150701_0001",{COLUMN => "base_info:name",TIMESTAMP => 1571643964566}
    
    4)数据删除
    delete 'namespace:表名', '行健', '列族:列', 版本(时间戳)
    delete "user_info","zhangsan_20150701_0001","base_info:name",1571643964566
    
    5)清空表
    先禁用表 —》 清空数据 —》 启用表
    truncate '表名’
    truncate "bd1906:test01"
    
    6)count 统计表数据行数
    count 'namespace:表名'
    count 'user_info'
    
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值