当前位置:首页 > 技术 > 正文内容

HBase Shell 常用操作指南

访客 技术 2026年6月4日 1

启动 HBase 客户端

进入 HBase 的安装目录后,执行以下命令进入交互式命令行:

[user@node1 hbase]$ bin/hbase shell

基础命令

  • 查看帮助文档:输入 help 可列出所有支持的命令及语法说明。
  • 查看当前集群状态status 显示活跃的 RegionServer 数量与系统负载情况。
  • 检查版本信息version 输出当前运行的 HBase 版本号。
  • 获取用户身份whoami 展示当前登录系统的用户信息。
  • 列出所有表list 返回当前命名空间中所有已创建的表名。
  • 表相关帮助table_help 提供对表对象操作的详细指导。

表结构与数据管理

创建新表:使用 create 指令定义表名和列族。例如创建一个名为 student 的表,包含 info 列族:

create 'student', 'info'

写入数据:通过 put 向指定行键、列族:列插入值:

put 'student', '1001', 'info:sex', 'male'
put 'student', '1001', 'info:age', '18'
put 'student', '1002', 'info:name', 'Lily'
put 'student', '1002', 'info:sex', 'female'
put 'student', '1002', 'info:age', '22'

查询整表数据:使用 scan 浏览表内容,支持范围筛选:

-- 扫描全部记录
scan 'student'

-- 按起始行键扫描
scan 'student', {STARTROW => '1001'}

-- 指定起止行键区间
scan 'student', {STARTROW => '1001', STOPROW => '1002'}

查看表定义:使用 describe 'student' 或简写 desc 'student' 查看列族配置详情。

更新字段值:重复执行 put 覆盖原有数据:

put 'student', '1001', 'info:name', 'Tom'
put 'student', '1001', 'info:age', '25'

读取特定数据get 支持按行或列精确查询:

-- 获取某一行全部列
get 'student', '1001'

-- 获取指定列的值
get 'student', '1001', 'info:name'

统计行数:计算表中总记录条数:

count 'student'

删除数据项

  • 删除整行数据:deleteall 'student', '1001'
  • 删除某一列:delete 'student', '1002', 'info:sex'

清空表内容:保留表结构但移除所有数据,需先禁用再清空:

disable 'student'
truncate 'student'

删除整个表:必须在表处于 disable 状态下才能执行 drop:

disable 'student'
drop 'student'
注意:若未禁用直接删除,会提示错误:"Table is enabled. Disable it first."

修改表结构:动态调整列族属性,如设置版本保留数量:

-- 设置 info 列族保存 3 个历史版本
alter 'student', {NAME => 'info', VERSIONS => 3}

-- 查询时携带版本参数以查看多版本数据
get 'student', '1001', {COLUMN => 'info:name', VERSIONS => 3}

命名空间(Namespace)操作

命名空间用于逻辑隔离不同业务的表,类似关系型数据库中的 database。

  • 创建命名空间
    create_namespace 'biz_data'
  • 删除命名空间(仅限空空间):
    drop_namespace 'biz_data'
  • 查看命名空间详情
    describe_namespace 'biz_data'
  • 列出所有命名空间
    list_namespace
  • 在命名空间内建表
    create 'biz_data:user_info', 'cf'
  • 查看某命名空间下的所有表
    list_namespace_tables 'biz_data'
标签: HBaseShell

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。