☰
Hbase学习内容
2026/10/24 1:39:30 网站建设 项目流程

Habse概念

官方网站:https://hbase.apache.org/book.html#
官网给的解释很通透,这里以官网的描述加上自我理解!!!!!
Data Model
In HBase, data is stored in tables, which have rows and columns. This is a terminology overlap with relational databases (RDBMSs), but this is not a helpful analogy. Instead, it can be helpful to think of an HBase table as a multi-dimensional map.

关于base的概念:

  1. Table:就mysql数据库一样,mysql是一个主键对应一条数据,而hbase是一个主键对应多条数据

    hbase的表结构是由一个Row和多个Column组成的
  2. Row:相当于mysql中的主键,是能够唯一确定一条数据的值
  3. Column:就是图中的列名
  4. Column Family:可能会定义多个列族
  5. Column Qualifier:列的限定符
  6. Cell:主键对应的一个列名就是一个cell
  7. Timestamp:时间戳

Hbase命令行相关操作

本节主要是讲解一些常用命令,后期遇到再补充

  1. 进入hbase主机:hbase shell
  2. 查看hbase的各种命令用法:help 或者 help ’命令名‘
  3. 退出hbase主机:exit
  4. 查看hbase全部表:list
  5. 查看hbase命名空间:list_namespace
  6. 查看某个命名空间下的全部表:list_namespace_tables '命名空间'
  7. 查看某个命名空间的创建方式:describe_namspace '命名空间'
  8. 创建一个命名空间:create_namespace '命名空间'
  9. 删除一个命名空间:drop_namespace '命名空间'
  10. 查看一个表是否存在:exists 'jzh:jzh_12345'
  11. 创建一个表:
    create 'jzh:jzh_12345',{NAME=>'fm1',COMPRESSION=>'SNAPPY', TTL => 7776000},{NAME=>'fm2',COMPRESSION=>'SNAPPY'},{NAME=>'fm3',COMPRESSION=>'SNAPPY'},{SPLITS => ["0","1","2","3","4","5","6","7","8","9"]} 命名空间:前缀_表名 列 数据失效时间(60 * 60 * 24*90) 分区:是以开头的数字来分的。
  12. 给表新增列:alter 'jzh:jzh_12345',{NAME=>'fm4',COMPRESSION=>'SNAPPY'}
  13. 给表删除列:alter 'jzh:jzh_12345', {NAME => 'fm4', METHOD => 'delete'}
  14. 查看一个表的详细信息:desc 'jzh:jzh_12345'
  15. 让表失效:disable 'jzh:jzh_12345'
  16. 让表生效:enable 'jzh:jzh_12345'
  17. 判断表是否是失效状态:is_disabled 'jzh:jzh_12345'
  18. 判断表是否是启用状态:is_enabled 'jzh:jzh_12345'
  19. 删除表(删除前先失效):drop 'jzh:jzh_12345'
  20. 向表中插入数据:put 'jzh:jzh_12345', '10010', 'fm1:NAME', 'jzh'
  21. 查看表中全部数据:scan 'jzh:jzh_12345'
  22. 查看表中1条数据:scan 'jzh:jzh_12345', LIMIT=>1
  23. 查看表种1条数据的5个版本数据scan 'jzh:jzh_12345', { RAW => true, VERSIONS => 5, LIMIT => 1 }
  24. 查看表中指定某条数据:
    Ⅰ、scan 'jzh:jzh_12345',{STARTROW=>"065\x0118600247165",ENDROW=>"065\x0118600247165\x7F"}
    Ⅱ、get 'jzh:jzh_12345', "96709451541\x012021-07-05 17:36:29\x012199574"
    scan方式可以进行模糊查询,是左闭右开;get方式只能精确查询
  25. 删除表中一条数据:delete 'jzh:jzh_12345', '列名', 'fm1:jzh'
  26. 清空表数据:truncate 'jzh:jzh_12345'
  27. 快照相关命令:
    查看当前集群所有快照:list_snapshots
    查看当前集群某个快照:list_snapshots 'jzh_test.*'
    为 jzh_test 表创建快照(命名规范<表名>-snap-<日期>-<用途>):snapshot 'jzh_test', 'jzh_test-snap-20251224'
    删除快照:delete_snapshot 'jzh_test-snap-20251224'
    从快照恢复原表(覆盖原表,先禁用并删除原表):disable 'jzh_test' drop 'jzh_test' restore_snapshot 'jzh_test-snap-20251224'
    从快照克隆新表(不删原表):clone_snapshot 'jzh_test-snap-20251224', 'jzh_test_restore_20251224'
    查看快照详细信息:describe_snapshot 'jzh_test-snap-20251224'
  28. 触发大合并命令:
    对整个表的所有 Region 执行大合并:major_compact 'jzh:jzh_12345'
    对某个表的指定列族执行大合并: major_compact 'jzh:jzh_12345', 'fm1'
    对特定 Region 执行大合并 (Region名可以在web UI或meta表中查到): major_compact 'Region名'
    查看合并进度:compaction_state 'zh:jzh_12345' MAJOR:正在执行大合并。 MINOR:正在执行小合并。 MAJOR_AND_MINOR:同时有大小合并进行。 NONE:当前没有合并操作。

Hbase程序实例(后续补充)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询