HBase命令操作大全

一、基本操作

  • 进入HBase客户端:hbase shell
  • 查看帮助命令:help
  • 查看当前数据库中有哪些表:list
  • 查看当前用户:whoami

二、库的操作

hbase里的数据库叫namespace,一个namespace下面有多个表

  • 查看命名空间:list_namespace
  • 创建命名空间:create_namespace ‘kb10’
  • 删除命名空间:drop_namespace ‘kb10’

三、表的操作

  • 表操作冒号是引用符

  • 列出当前命名空间的所有表:list_namespace_tables ‘kb10’#

  • 列出所有表:list

  • 查看表的信息:status desc ‘NAMESPACE:TABLE’

  • 启用或禁用列簇:enable/disable ‘NAMESPACE:TABLE’

  • 查看列簇的状态:is_disable/is_enable ‘NAMESPACE:TABLE’

  • 创建列簇:create ‘kb10:student’,‘basicinfo’,‘stuinfo’#新建一张表,列簇为basicinfo和stuinfo
    创建完之后,可在HDFS里hbase/data下查看表文件目录
    在这里插入图片描述

  • 删除表,删除前要把表里的列簇禁用掉:drop ‘NAMESPACE:TABLE’

  • 添加数据:put ‘NAMESPACE:TABLE’,‘rowkey值’,‘列簇名:列名’,‘值’
    在这里插入图片描述

  • 把数据写入磁盘:flush ‘NAMESPACE:TABLE’ 。在put数据后,可以看到HDFS系统里并没有添加任何数据,可以说明写入的过程是写在内存里的,而在flush之后,HDFS里便有了数据。
    在这里插入图片描述

  • 扫描全表数据:scan ‘NAMESPACE:TABLE’
    在这里插入图片描述

  • 扫描特定列的数据:scan ‘kb10:student’,{COLUMNS=>[‘basicinfo:name’],VERSIONS=>3}

  • 获取指定cell的数据:get ‘NAMESPACE:TABLE’,‘FAMILY:COLUMN’
    在这里插入图片描述
    列簇目录下的文件,可以使用hdfs命令查看内容:hbase hfile -v -p -f file_path

在这里插入图片描述

  • 查看表结构:desc ‘NAMESPACE:TABLE_NAME’
    在这里插入图片描述
  • 更新指定字段的数据 put ‘customer’, ‘jsmith’, ‘order:numb’, ‘654321’
  • 查看“指定行”或“指定列族:列”的数据
    get ‘customer’, ‘jsmith’
    get ‘customer’, ‘jsmith’,‘addr’
    get ‘customer’, ‘jsmith’,‘addr:city’
  • 统计表数据行数 count ‘customer’
  • 清空表数据 truncate ‘customer’
  • 删除某 rowkey 的全部数据 deleteall ‘customer’,‘jsmith’
  • 删除某 rowkey 的某一列数据: delete ‘customer’,‘njones’,‘addr:city’

四、查询数据

  • 查询前十条数据
    例:scan ‘book:info’,{LIMIT=>10}

  • 查询前十条c:q列的数据
    例:scan ‘book:info’,{COLUMNS=>‘c:q’,LIMIT=>10}

  • 查询rowkey从’1000’到’2000’,列族为c:q的数据
    例:scan ‘book:info’,{STARTROW=>‘1000’,ENDROW=>‘2000’,COLUMN=>‘c:q’}’’

  • PrefixFilter:rowkey 前缀过滤。ps查询rowkey前缀为100的数据
    例:scan ‘book:info’,{FILTER=>“PrifixFilter(‘100’)”}

  • 查询rowkey中包括0778的数据
    例:scan ‘book:info’,{FILTER=>“RowFilter(=,‘substring:0778’)”,LIMIT=>10}

  • QualifierFilter(CompareFilter.Compare op, ByteArrayComparable qualifierComparator)
    QualifierFilter按照列的名称过滤。
    例:scan ‘book:info’,{FILTER=>“PrefixFilter(‘100’) AND QualifierFilter(=,‘regexstring:q’)”}

  • ColumnPrefixFilter(byte[] prefix) 注意:一个列名是可以出现在多个列族中,该过滤器将返回所有列族中匹配的列
    ===(与上一句的查询结果一样)
    例:scan ‘book:info’,{FILTER=>“PrefixFilter(‘100’) AND ColumnPrefixFilter(‘q’)”}

  • MultipleColumnPrefixFilter 基于多个列名前缀过滤数据
    例:scan ‘book:info’,{FILTER=>“MultipleColumnPrefixFilter(‘q1’,‘q2’,‘q3’)”,LIMIT=>10}

  • ColumnRangeFilter(byte[] minColumn,boolean minColumnclusive,byte[] maxColumn,boolean maxColumnInclusive)
    minColumn -列范围的最小值,如果为空,则没有下限
    minColumnInclusive -列范围是否包含minColumn
    maxColumn -列范围的最大值,如果为空,则没有上限
    maxColumnInclusive -列范围是否包含maxColumn
    例:scan ‘book:info’ {FILTER=>“ColumnRangeFilter(‘q’,true,‘q4’,false)”,LIMIT=>10}

  • SingleColumnValueFilter(byte[] family,byte[] qualifier, CompareFilter.CompareOp, compareOp, ByteArrayComparable comparator) 比较列的关键字查询
    例:scan ‘book:info’,{FILTER=>“SingleColumnValueFilter(‘c’,‘q1’,=,‘substring:1’)”,LIMIT=>10}

  • FirstKeyOnlyFilter()函数每一行的第一个cell的值,可以用于高效的执行统计行数,但具体作用总觉得不大。
    例:scan ‘book:info’,{FILTER=>“FirstKeyOnlyFilter()”,LIMIT=>10}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值