HBase Shell

devtools/2025/3/29 23:41:39/

以下是 **HBase Shell** 的常用命令总结,涵盖表管理、数据操作和常用工具,适合快速查阅和日常使用:

---

### **1. 进入与退出 HBase Shell**
```bash
# 进入 HBase Shell(确保 HBase 服务已启动)
hbase shell

# 退出 Shell
exit
# 或按 Ctrl + D
```

---

### **2. 表管理命令**
#### **创建表**
```bash
# 语法:create '表名', '列族1', '列族2', ...
create 'user', 'info', 'contact'
```

#### **列出所有表**
```bash
list
```

#### **查看表结构**
```bash
describe 'user'
```

#### **禁用/启用表**
```bash
disable 'user'    # 禁用表(删除或修改表前需禁用)
enable 'user'     # 启用表
```

#### **删除表**
```bash
disable 'user'    # 先禁用
drop 'user'       # 再删除
```

#### **检查表状态**
```bash
is_enabled 'user'
is_disabled 'user'
```

---

### **3. 数据操作命令**
#### **插入/更新数据**
```bash
# 语法:put '表名', '行键', '列族:列名', '值'
put 'user', '001', 'info:name', 'Alice'
put 'user', '001', 'contact:email', 'alice@example.com'
```

#### **查询单行数据**
```bash
get 'user', '001'
```

#### **扫描全表数据**
```bash
scan 'user'
```

#### **带条件扫描**
```bash
# 限制返回行数
scan 'user', {LIMIT => 5}

# 过滤特定列族或列
scan 'user', {COLUMNS => ['info:name']}

# 按行键范围扫描(左闭右开)
scan 'user', {STARTROW => '001', STOPROW => '005'}
```

#### **删除数据**
```bash
# 删除某列
delete 'user', '001', 'contact:email'

# 删除整行
deleteall 'user', '001'
```

---

### **4. 高级操作**
#### **统计表行数**
```bash
count 'user', {INTERVAL => 1000}  # 每处理 1000 行显示进度
```

#### **清空表数据**
```bash
truncate 'user'  # 自动禁用、删除并重建表
```

#### **过滤器查询**
```bash
# 查询值等于 'Alice' 的行
scan 'user', FILTER => "ValueFilter(=, 'binary:Alice')"

# 查询列名包含 'name' 的列
scan 'user', FILTER => "ColumnPrefixFilter('name')"
```

---

### **5. 命名空间管理**
#### **创建命名空间**
```bash
create_namespace 'test_ns'
```

#### **在命名空间下创建表**
```bash
create 'test_ns:user', 'info'
```

#### **列出所有命名空间**
```bash
list_namespace
```

---

### **6. 权限管理**
#### **授予用户权限**
```bash
grant 'user', 'RWXCA', 'user'  # 权限:Read, Write, eXecute, Create, Admin
```

#### **查看权限**
```bash
user_permission 'user'
```

---

### **7. 工具命令**
#### **查看 HBase 状态**
```bash
status
```

#### **查看集群版本**
```bash
version
```

#### **查看帮助**
```bash
help '命令名'  # 如 help 'create'
```

---

### **注意事项**
1. **列族设计**:列族需在创建表时定义,后续不可动态修改。
2. **行键设计**:行键是数据分布的核心,影响查询性能。
3. **批量操作**:频繁单行操作效率低,建议使用 HBase API 批量处理。
4. **时间戳**:插入数据时可指定时间戳,默认为系统时间。

---

### **常见问题**
#### **Q1: 执行命令报错 `TableNotFoundException`**
- 检查表名是否拼写正确。
- 确认表是否被禁用(需先启用)。

#### **Q2: 数据更新后未生效**
- HBase 数据最终一致,强制刷新可使用:
  ```bash
  flush 'user'
  ```

#### **Q3: 如何导出/导入数据?**
- 使用 `export` 和 `import` 工具(需退出 Shell 执行):
  ```bash
  # 导出表数据
  hbase org.apache.hadoop.hbase.mapreduce.Export 'user' /path/to/export

  # 导入数据
  hbase org.apache.hadoop.hbase.mapreduce.Import 'user' /path/to/import
  ```

---

掌握这些命令后,您可以通过 HBase Shell 完成大多数日常管理和调试任务!对于复杂操作(如大规模导入),建议使用 HBase API 或工具(如 Spark、Hive)。


http://www.ppmy.cn/devtools/171258.html

相关文章

深度学习--链式法则

可以链接一个多元函数对其所有变量的偏导数的方式来计算梯度。 偏导计算示例: 设函数z f(x,y) 3x^2y 2xy^2 求z对x和y的偏导数 对x求偏导数 把y看作事常熟,对x求导数 3x2xy 2y^2 对y求偏导数 3x^2 2x x 3y^2 2.4.4 链式法则 用上吗的方法可能很难找…

【漫话机器学习系列】153.残差平方和(Residual Sum of Squares, RSS)

残差平方和(RSS):机器学习中的误差衡量指标 在机器学习和统计建模中,衡量模型的拟合优劣是一个重要问题。残差平方和(Residual Sum of Squares, RSS)是一个常用的误差度量方法,它衡量了模型预测…

关于大模型中Prompt这一概念小记

大模型中的提示词(Prompt)深入解析 1. 什么是 Prompt? Prompt(提示词)是用户与大模型(如 ChatGPT、GPT-4、Gemini、Claude)交互时输入的指令、问题或文本片段。它引导模型生成符合用户需求的输…

基于Spring Boot的售楼管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

python多线程和多进程的区别有哪些

python多线程和多进程的区别有七种: 1、多线程可以共享全局变量,多进程不能。 2、多线程中,所有子线程的进程号相同;多进程中,不同的子进程进程号不同。 3、线程共享内存空间;进程的内存是独立的。 4、同一…

【redis】主从复制:全量复制、部分复制、实时复制详解

文章目录 全量复制无硬盘模式runId 部分复制积压缓冲区 实时复制总结回顾 全量复制 从节点主动找主节点进行复制 从节点发送 psync 命令给主节点进行数据同步,由于是第一次进行复制,从节点没有主节点的 replicationid(运行 id) 和…

【蓝桥杯每日一题】3.20

🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x “蓝桥杯是编程成人礼——那些崩溃的深夜,终将变成你碾压题海的底气” 今天我们来点有意思的算法:前缀和 前缀和与差分的核⼼思想是预处理,可以在暴…

ETL:数据清洗、规范化和聚合的重要性

在当今这个数据呈爆炸式增长的时代,数据已成为企业最为宝贵的资产之一。然而,数据的海量增长也伴随着诸多问题,如数据来源多样、结构复杂以及质量问题等,这些问题严重阻碍了数据的有效处理与深度分析。在此背景下,ETL&…