HBase Shell里表操作实战

文章目录

  • [1. 实战概述](#1. 实战概述)
  • [2. 实战步骤](#2. 实战步骤)
    • [2.1 创建表](#2.1 创建表)
      • [2.1.1 创建学生表](#2.1.1 创建学生表)
      • [2.1.2 创建教师表](#2.1.2 创建教师表)
    • [2.2 显示全部表名](#2.2 显示全部表名)
    • [2.3 显示表结构](#2.3 显示表结构)
    • [2.4 写入数据](#2.4 写入数据)
    • [2.5 扫描全表](#2.5 扫描全表)
    • [2.6 查询数据](#2.6 查询数据)
      • [2.6.1 按行键查询](#2.6.1 按行键查询)
      • [2.6.2 按行键与列族查询](#2.6.2 按行键与列族查询)
      • [2.6.3 按行键与列查询](#2.6.3 按行键与列查询)
    • [2.7 修改数据](#2.7 修改数据)
    • [2.8 删除数据](#2.8 删除数据)
      • [2.8.1 删除单元格数据](#2.8.1 删除单元格数据)
      • [2.8.2 删除记录行数据](#2.8.2 删除记录行数据)
    • [2.9 删除学生表表](#2.9 删除学生表表)
  • [3. 实战总结](#3. 实战总结)

1. 实战概述

  • 本实战基于 HBase 2.6.3(运行于 JDK 17),完整演示了从启动集群、创建表、写入与查询数据,到修改、删除及最终删除表的全流程操作,涵盖了 HBase Shell 的核心命令,验证了 HBase 作为分布式列式数据库的基本功能与使用方法。

2. 实战步骤

  • 启动ZooKeeper和HDFS之后,执行命令:start-hbase.sh
  • 执行命令:hbase shell,进入HBase交互式环境

2.1 创建表

2.1.1 创建学生表

  • 执行命令:create 'student','info','score','hobby'

2.1.2 创建教师表

  • 执行命令:create 'teacher','info','salary','hobby'

2.2 显示全部表名

  • 执行命令:list,列表显示当前数据库里全部表名

2.3 显示表结构

  • 执行命令:describe 'student',显示表结构

2.4 写入数据

  • 格式:put 表名, 行键, 列族:列, 值

  • 添加student表行键为20210101的数据

    sql 复制代码
    put 'student', '20210101', 'info:name', 'Mike'
    put 'student', '20210101', 'info:gender', 'male'
    put 'student', '20210101', 'info:age', '19'
    put 'student', '20210101', 'score:chinese', '89'
    put 'student', '20210101', 'score:math', '90'
    put 'student', '20210101', 'score:english', '78'
    put 'student', '20210101', 'hobby:flower', 'lotus'
    put 'student', '20210101', 'hobby:book', 'Big Data'
  • 添加student表行键为20210102的数据

    sql 复制代码
    put 'student', '20210102', 'info:name', 'Lisa'
    put 'student', '20210102', 'info:gender', 'female'
    put 'student', '20210102', 'info:age', '19'
    put 'student', '20210102', 'score:chinese', '78'
    put 'student', '20210102', 'score:math', '98'
    put 'student', '20210102', 'score:english', '58'
    put 'student', '20210102', 'hobby:flower', 'peony'
    put 'student', '20210102', 'hobby:book', 'Human History'
  • 添加student表行键为20210103的数据

    sql 复制代码
    put 'student', '20210103', 'info:name', 'Smith'
    put 'student', '20210103', 'info:gender', 'male'
    put 'student', '20210103', 'score:math', '97'
    put 'student', '20210103', 'hobby:flower', 'rose'

2.5 扫描全表

  • 执行scan '表名',显示指定表全部记录信息

  • 执行命令:scan 'student' (单元格包含时间戳与值)

  • 行键只有3个,设置了值的单元格有20个

2.6 查询数据

2.6.1 按行键查询

  • 执行命令:get 'student', '20210102',查询student表行键为20210102的记录

2.6.2 按行键与列族查询

  • 执行命令:get 'student', '20210102', 'info',查询student表行键为20210102的记录,只显示info列族

2.6.3 按行键与列查询

  • 执行命令:get 'student', '20210102', 'info:name',查询student表行键为20210102的记录,只显示info列族里的name

2.7 修改数据

  • 执行命令:put 'student', '20210101', 'info:age', '18',将行键20210101info列族的age19修改为18
  • 执行命令:get 'student', '20210101', 'info:age',查询行键20210101info列族的age

2.8 删除数据

2.8.1 删除单元格数据

  • 执行命令:delete 'student', '20210103', 'hobby:flower',删除行键为20210103hobby列族的flower

  • 执行命令:get 'student', '20210103',查询行键20210103的数据,看是否删除了hobby列族的flower

2.8.2 删除记录行数据

  • 执行命令:deleteall 'student', '20210103',删除行键为20210103的记录行

  • 此时,执行命令:scan 'student',只有两行记录

2.9 删除学生表表

  • 先要用disable命令禁用,然后用drop命令删除表

  • 执行命令:disable 'student',禁用student

  • 执行命令:drop 'student',删除student

  • 执行命令:list,查看student是否被删除

3. 实战总结

  • 本次 HBase 实战成功完成了从环境启动到数据全生命周期管理的完整操作流程。在 HBase 2.6.3(兼容 JDK 17)环境下,通过 start-hbase.sh 启动集群后,使用 HBase Shell 创建了 studentteacher 表,并熟练运用 putgetscan 等命令进行数据写入与多维度查询。同时,验证了数据修改(覆盖写入)、单元格删除(delete)与整行删除(deleteall)的功能,并严格按照"先 disable 再 drop"的规范删除表。整个过程体现了 HBase 面向列存储、稀疏灵活、高可扩展的特性,为后续大数据应用开发奠定了坚实基础。
相关推荐
yumgpkpm3 天前
腾讯云TBDS与CDH迁移常见问题有哪些?建议由CDH迁移到CMP 7.13 平台(类Cloudera CDP,如华为鲲鹏 ARM 版)
hive·hadoop·zookeeper·flink·spark·kafka·hbase
yumgpkpm4 天前
数据可视化AI、BI工具,开源适配 Cloudera CMP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)值得推荐?
人工智能·hive·hadoop·信息可视化·kafka·开源·hbase
1***s6325 天前
MySQLGraphQL案例
django·hbase·图形洹染
2501_941147717 天前
人工智能与自动化:未来工作环境的颠覆性力量
hbase
阳爱铭10 天前
ClickHouse 中至关重要的两类复制表引擎——ReplicatedMergeTree和 ReplicatedReplacingMergeTree
大数据·hive·hadoop·sql·clickhouse·spark·hbase
人间打气筒(Ada)15 天前
Centos7 搭建hadoop2.7.2、hbase伪分布式集群
数据库·分布式·hbase
張萠飛17 天前
Phoenix+Hbase和Doris两个方案如何选择,能不能拿Doris完全替代Phoenix+Hbase?有什么难点?
大数据·数据库·hbase
麦嘟学编程17 天前
快速配置 HBase 完全分布式(依赖已部署的 Hadoop+ZooKeeper)
hadoop·分布式·hbase
yumgpkpm17 天前
CMP(类Cloudera CDP 7.3 404版华为Kunpeng)与其他大数据平台对比
大数据·hive·hadoop·elasticsearch·kafka·hbase·cloudera
yumgpkpm17 天前
Hadoop在AI时代如何实现生态协同? CMP 7.13(或类 Cloudera CDP7.3 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)
大数据·hadoop·elasticsearch·zookeeper·kafka·hbase·cloudera