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分布式处理实战

相关推荐
库库林_沙琪马32 分钟前
Redis 持久化:从零到掌握
数据库·redis·缓存
Yvonne9781 小时前
创建三个节点
java·大数据
牵牛老人2 小时前
Qt中使用QPdfWriter类结合QPainter类绘制并输出PDF文件
数据库·qt·pdf
卡西里弗斯奥4 小时前
【达梦数据库】dblink连接[SqlServer/Mysql]报错处理
数据库·mysql·sqlserver·达梦
温柔小胖4 小时前
sql注入之python脚本进行时间盲注和布尔盲注
数据库·sql·网络安全
OJAC近屿智能4 小时前
苹果新品今日发布,AI手机市场竞争加剧,近屿智能专注AI人才培养
大数据·人工智能·ai·智能手机·aigc·近屿智能
lucky_syq5 小时前
Spark算子:大数据处理的魔法棒
大数据·分布式·spark
杨俊杰-YJ5 小时前
MySQL 主从复制原理及其工作过程
数据库·mysql
一个儒雅随和的男子5 小时前
MySQL的聚簇索引与非聚簇索引
数据库·mysql
V+zmm101347 小时前
基于微信小程序的家政服务预约系统的设计与实现(php论文源码调试讲解)
java·数据库·微信小程序·小程序·毕业设计