HBase Shell操作

一、数据定义(创建、删除表)

1、启动、关闭HBase Shell

(1)启动

  • 切换到root用户下(su命令)
  • 启动hadoop,终端输入:start-all.sh
  • 启动zookeeper,分别在三台虚拟机的终端下输入:zkServer.sh start
  • 启动hbase,master节点终端输入:start-hbase.sh
  • master节点终端下输入:hbase shell ,进入hbase操作命令

(2)关闭

  • hbase shell中输入:exit 退出
  • 关闭hbase,master终端下输入:stop-hbase.sh
  • 关闭zookeeper,分别在三个节点的终端下输入:zkServer.sh stop
  • 关闭hadoop,master节点终端下输入命令:stop-all.sh

2、数据定义

(1)查看表的相关信息

  • 查看表是否存在:exits '表名'
  • 查看当前所有表名:list
  • 查看选定表的列族及其参数:describe '表名'

(2)创建表

create '表名','列族名'

例子:

  • create ’Student‘,'StuInfo','Grades'(推荐)
  • create 'Student',{NAME=>'StuInfo',VERSIONS=>5},{NAME=>'Grades',VERSIONS=>5}

(3)修改表 

  • 修改表中列族的参数信息

alter 'Student',{NAME=>'Grades',VERSIONS=3}

  •  增加列族

alter 'Student','gender'

  •  移除或删掉已有的列族(注:删除列表中,表中至少有两个列族组成)

alter 'Student',{NAME=>'gender',METHOD=>'delete'}

或 alter 'Student','delete'=>'gender'

(4)删除表 

  •  先禁用表,才能删除:disable '表名'
  • 删除表:drop '表名'
  • 清空表的数据:truncate '表名' 
  • 统计表内数据:count '表名'
  • 检查表的状态,是否被禁用:enable '表名'

二、数据操作(数据的增删改查) 

1、 增加数据

put '表名','行键','列族:列限定符','单元格值',时间戳

例子:

  •  put 'student','001','StuInfo:Name','Alice',1
  •  put 'student','001','StuInfo:Age','18'

2、删除数据 

delete '表名','行键','列族<:列限定符>',<时间戳> (<>可忽略) 

  • delete 'Student','0001','Grades' 

3、数据查询 

 (1)get命令

get '表名','行键','列族<:列限定符>',<时间戳>

例子:get 'Student','001',{COLUMN=>'Grades',VERSIONS=>2}

(2)scan命令

scan '表名',{<列族:列限定符,时间戳>}

(1)扫描全表:scan 'student'

(2) 指定列族名称:scan 'student',{COLUMN=>'stuinfo'}

(3)指定列族和列的名称:scan 'student',{COLUMN=>'StuInfo:Name'}

(4)指定输出行数:scan 'student',{LIMT=>1}

(5)指定输出行键范围:scan 'student',{STARTROW=>'001',ENDROW=>'003'}

三、过滤器

1、过滤器语法格式

scan/get  '表名',{FILTER=>"过滤器(比较运算器,'比较器')"}

 常用比较运算符、比较器:

2、过滤器种类

(1)RowFilter过滤器:针对行键进行字符串比较和过滤

例子:

例1:显示行键前缀为0开头的键值对;

例2:显示行键字节顺序大于002的键值对;

(2)PrefixFilter:行键前缀过滤器

例:扫描前缀为001的行键

(3)KeyOnlyFilter过滤器:扫描全表,显示每个逻辑行的第一个键值对

(4)FirstKeyOnlyFilter过滤器:扫描全表,显示每个逻辑行的第一个键值对

(5)InclusiveStopFilter:替代ENDROW返回终止条件行

例:扫描显示行键001到002范围内的键值对

(6)FamilyFilter:针对列族进行比较和过滤。

例:显示列族前缀为stu开头的键值对

(7)QualifierFilter:列标识过滤器

例:显示列名为name的记录

(8)ColumnPrefixFilter:对列名前缀进行过滤

例:显示列名为name的记录;

(9)MultipleColumnPrefixFilter:可以指定多个前缀

(10)ColumnRangeFilter :设置范围按字典序对列名进行过滤

(11)ValueFilter :值过滤器

:查询值等于19的所有键值对

(12)SingleColumnValueFilter :在指定的列族和列中进行值过滤器

(13)ColumnCountGetFilter :限制每个逻辑行返回的键值对数

例:返回行键为001的前3个键值对

(14)PageFilter :基于行的分页过滤器,设置返回行数

例:显示一行

(15)ColumnPaginationFilter :基于列的进行分页过滤器,需要设置偏移量与返回数量 

例:显示每行第1列之后的2个键值对

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值