HBase Shell

目录

  • [1. HBase常用命令](#1. HBase常用命令)
    • [1.1 create命令](#1.1 create命令)
    • [1.2 list命令](#1.2 list命令)
    • [1.3 describe命令](#1.3 describe命令)
    • [1.4 put命令](#1.4 put命令)
    • [1.5 get命令](#1.5 get命令)
    • [1.6 scan命令](#1.6 scan命令)
    • [1.7 count命令](#1.7 count命令)
    • [1.8 exists命令](#1.8 exists命令)
    • [1.9 修改表结构](#1.9 修改表结构)
    • [1.10 delete命令](#1.10 delete命令)
    • [1.11 deleteall命令](#1.11 deleteall命令)
    • [1.12 truncate命令](#1.12 truncate命令)
    • [1.13 disable、drop命令](#1.13 disable、drop命令)
    • [1.14 status命令](#1.14 status命令)
    • [1.15 version命令](#1.15 version命令)
  • [2. HBase Shell综合示例](#2. HBase Shell综合示例)
    • [2.1 创建表并插入数据](#2.1 创建表并插入数据)
    • [2.2 基本操作实践](#2.2 基本操作实践)
  • [3. HBase Shell全部命令](#3. HBase Shell全部命令)
  • 参考

1. HBase常用命令

  HBase为用户提供了一个非常方便的使用方式,称之为HBase Shell。HBase Shell提供了大多数的HBase命令,通过HBase Shell,用户可以方便地创建、删除及修改表,还可以向表中添加数据、列出表中的相关信息。

  HBase Shell的常用命令如下表所示。

名称 命令表达式
创建表 create '表名称', '列族名称1', '列族名称2', '列族名称3'
添加记录 put '表名称', '行键', '列名称:', '值'
查看记录 get '表名称', '行键'
查看表中的记录总数 count '表名称'
删除记录 delete '表名', '行键', '列名称'
删除一张表 先要屏蔽该表,才能对该表进行删除,第一步disable '表名称',第二步drop '表名称'
查看所有记录 ``scan '表名称'
查看某个表某个列中的所有数据 scan '表名称', {COLUMNS=>'列族名称:列名称'}
更新记录 重写一遍进行覆盖

1.1 create命令

  功能:创建表。

  create命令:create '表名称', '列族名称1', '列族名称2', '列族名称3',其中表名、列名都要用单引号括起来,并以逗号分割。

1.2 list命令

  功能:查看当前HBase有哪些表。

1.3 describe命令

  功能:查看指定表的构造。

  describe命令:describe '表名'。describe可简写为desc。

1.4 put命令

  功能:向表中插入数据。

  put命令:put '表名', '行键', '列族:列名', '值'

1.5 get命令

  功能:查看指定表中指定行键或指定列的相关数据。

  命令:get '表名', '行键'get '表名', '行键', '列族:列名'

1.6 scan命令

  功能:查看指定表或指定列的所有数据。

  命令:scan '表名'scan '表名', {COLUMN => '列族:列名'}或scan '表名', {COLUMNS=>'列族'}


1.7 count命令

  功能:统计记录条数。

  命令:count '表名'

1.8 exists命令

  功能:判断表是否存在。

  命令:exists '表名'

1.9 修改表结构

  先要disable '表名',再对表进行修改,最后要enable '表名'

  下面的命令可以将HBase的scores表course列族改为保存3份历史副本。

1.10 delete命令

  功能:删除指定表中指定列的数据。

  命令:delete '表名', '行键', '列族:列名'

1.11 deleteall命令

  功能:删除指定行键的记录。

  命令:deleteall '表名', '行键'

1.12 truncate命令

  功能:清空表中数据,但保留表结构。

  命令:truncate '表名'

1.13 disable、drop命令

  功能:先禁用表,然后删除表。

  命令:disable '表名'drop '表名'

1.14 status命令

  功能:查看HBase运行状态。

  命令:status

1.15 version命令

  功能:查看HBase的版本信息。

  命令:version

2. HBase Shell综合示例

2.1 创建表并插入数据

bash 复制代码
create 'users', 'user_id', 'address', 'info'
put 'users', 'xiaoming', 'info:age', '24'
put 'users', 'xiaoming', 'info:birthday', '1987-06-17'
put 'users', 'xiaoming', 'info:company', 'alibaba'
put 'users', 'xiaoming', 'address:country', 'China'
put 'users', 'xiaoming', 'address:province', 'zhejiang'
put 'users', 'xiaoming', 'address:city', 'hangzhou'
put 'users', 'zhangyifei', 'info:birthday', '1987-4-17'
put 'users', 'zhangyifei', 'info:favorite', 'movie'
put 'users', 'zhangyifei', 'info:company', 'alibaba'
put 'users', 'zhangyifei', 'address:country', 'China'
put 'users', 'zhangyifei', 'address:province', 'guangdong'
put 'users', 'zhangyifei', 'address:city', 'jieyang'
put 'users', 'zhangyifei', 'address:town', 'xianqiao'


2.2 基本操作实践

  获取一个行键对应的记录:get 'users', 'xiaoming'

  获取一个列族对应的记录:get 'users', 'xiaoming', 'info'

  获取一个列名对应的记录:get 'users', 'xiaoming', 'info:age'

  在HBase中,数据的插入和更新统一使用put命令。当使用put命令向一个表中的某个列插入数据时,如果该数据原来不存在,则执行插入操作;如果原始数据存在,则执行更新操作。HBase执行更新操作时并不会将原有的数据删除替换,而是直接以一个新的版本号额外将新的数据插入到单元格中,这就意义着HBase允许通过查询将某一个单元格中曾经存在过的所有历史版本数据同一查询出来。

bash 复制代码
alter 'user', {NAME=>'info', VERSIONS=>3}
put 'users', 'xiaoming', 'info:age', '29'
get 'users', 'xiaoming', 'info:age'
put 'users', 'xiaoming', 'info:age', '30'
get 'users', 'xiaoming', 'info:age'

  从下图中可以两次get命令查看的info:age都是当前最新的数据。

  获取单元格中不同版本的数据:get 'users', 'xiaoming', {COLUMN=>'info:age', VERSIONS=>3}

  删除一个行键对应记录中列名的数据:delete 'users', 'xiaoming', 'info:age'

  从下图中可以删除xiaoming对应记录中info:age=30的数据。

  删除一个行键对应的记录:deleteall 'users', 'xiaoming'

  统计行数:count 'users'

  清空表:truncate 'users'

3. HBase Shell全部命令



参考

吴章勇 杨强著 大数据Hadoop3.X分布式处理实战

相关推荐
段一凡-华北理工大学9 小时前
工业领域的Hadoop架构学习~系列文章23:物流行业Hadoop应用实践 - 智能物流的数字化引擎
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
万岳科技系统开发9 小时前
骑手配送系统如何支持外卖与跑腿一体化运营
大数据·前端·小程序
Harvy_没救了9 小时前
【云计算】华为公有云构建高可用Redis集群
数据库·redis·云计算
念何架构之路9 小时前
存储层技术:其他NoSQL数据库和RPC
数据库·oracle
枫叶林FYL9 小时前
项目十一:Saga模式分布式旅行预订系统 核心服务实现与Saga编排器
数据库·python·docker
逍遥德9 小时前
PostgreSQL --- 二进制数使用详解
数据库·sql·postgresql
Ze3G90nYt9 小时前
Redis 分布式锁进阶第一百三十一篇
数据库·redis·分布式
倔强的石头1069 小时前
《Kingbase护城河》——数据库卡顿急救手册:会话状态深度解析与“僵尸进程”排查实战
数据库
峥无9 小时前
MySQL 数据库 & 数据表基础操作总结
数据库·mysql
程序边界9 小时前
KES Plus深度体验:当数据库开始“越界“做开发平台
数据库