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

相关推荐
仍然.6 小时前
Redis---缓存
数据库·redis·缓存
Aloudata6 小时前
LookML 语义模型 vs 企业级独立语义层:BI 建模语言能否承担企业语义底座?
数据库·人工智能·数据分析·数据资产·dataagent
Leo.yuan6 小时前
2026年实时数据同步工具怎么选?GoldenGate、Striim、SeaTunnel、FineDataLink 5.0横评
大数据
细嗅蔷薇@6 小时前
排序和分⻚(order by 、limit)
数据库·oracle
sm_926787056 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
龙亘川6 小时前
AI 协同赋能城市治理:支撑政协数字化履职的技术路径探析
大数据·人工智能·智慧城市·开源软件·数据可视化
wdfk_prog6 小时前
LWIP教程 09:从 `tcp_slowtmr()` 到 Fast Retransmit——TCP 超时重传与重复 ACK
服务器·网络·数据库·网络协议·tcp/ip
逸模6 小时前
BIM在连锁餐饮装修中的应用:不只是画三维图
大数据·数据库·人工智能·物联网·建模
梦想平凡6 小时前
棋牌游戏技术实战(五):从对局事件重新执行规则,核对棋盘和最终状态
数据库·游戏·oracle
白露与泡影7 小时前
Oracle AI Database 26ai RAC 部署步骤、关键命令与一键脚本
数据库·人工智能·oracle