15分钟熟悉HBase Shell命令

HBase Shell 2.5.6 脚本化实战:3种自动化运维场景与命令文件执行 本文详细介绍了HBase Shell 2.5.6在自动化运维中的实战应用,涵盖批量建表、数据导入和集群状态巡检三大场景。通过脚本化操作和优化技巧,显著提升运维效率,降低错误率,适用于大规模HBase集群管理。 阅读详情

 

2016年05月12日 21:05:48 汤高 阅读数:23271更多

个人分类: 大数据与云计算

所属专栏: 大数据生态系统技术

版权声明:本文为博主原创文章,转载请指明 http://blog.youkuaiyun.com/tanggao1314/ https://blog.youkuaiyun.com/tanggao1314/article/details/51387560

 

 

下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:

名称

命令表达式

创建表

create '表名称', '列名称1','列名称2','列名称N'

添加记录      

put '表名称', '行名称', '列名称:', '值'

查看记录

get '表名称', '行名称'

查看表中的记录总数

count  '表名称'

删除记录

delete  '表名' ,'行名称' , '列名称'

删除一张表

先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步  drop '表名称'

查看所有记录

scan "表名称"  

查看某个表某个列中所有数据

scan "表名称" , ['列名称:']

更新记录 

就是重写一遍进行覆盖

 

一、一般操作

1.查询服务器状态

hbase(main):011:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 4.0000 average load
 

2.查询版本

hbase(main):012:0> version
1.2.1, r8d8a7107dc4ccbf36a92f64675dc60392f85c015, Wed Mar 30 11:19:21 CDT 2016

 

二、DDL操作

1.创建一个表

hbase(main):013:0> create 'table','column_famaly','column_famaly1','column_famaly2'
0 row(s) in 94.9160 seconds
 

=> Hbase::Table - table

 

 

2.列出所有表

hbase(main):014:0> list
TABLE                                                                           
stu                                                                             
table                                                                           
test                                                                            
3 row(s) in 0.0570 seconds


=> ["stu", "table", "test"]

 

 

3.获得表的描述

hbase(main):015:0> describe 'table'
Table table is ENABLED                                                          
table                                                                           
COLUMN FAMILIES DESCRIPTION                                                     
{NAME => 'column_famaly', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', R
EPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =>
 '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_
MEMORY => 'false', BLOCKCACHE => 'true'}                                        
{NAME => 'column_famaly1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', 
REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN
_MEMORY => 'false', BLOCKCACHE => 'true'}                                       
{NAME => 'column_famaly2', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', 
REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN
_MEMORY => 'false', BLOCKCACHE => 'true'}                                       
3 row(s) in 0.0430 seconds


 

4.删除一个列族     alter,disable,enable

hbase(main):016:0> alter 'table',{NAME=>'column_famaly',METHOD=>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 3.0220 seconds


hbase(main):018:0> describe 'table'
Table table is ENABLED                                                          
table                                                                           
COLUMN FAMILIES DESCRIPTION                                                     
{NAME => 'column_famaly1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', 
REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN
_MEMORY => 'false', BLOCKCACHE => 'true'}                                       
{NAME => 'column_famaly2', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', 
REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN
_MEMORY => 'false', BLOCKCACHE => 'true'}                                       
2 row(s) in 0.0520 seconds

 

 

5.drop一个表

 

hbase(main):019:0> drop 'stu'


ERROR: Table stu is enabled. Disable it first.


Here is some help for this command:
Drop the named table. Table must first be disabled:
  hbase> drop 't1'
  hbase> drop 'ns1:t1'


报错了,因为要把表格设置为disable 
 

6.把表设置为disable 

hbase(main):020:0> disable 'stu'
0 row(s) in 2.3150 seconds


再删除一个表
hbase(main):021:0> drop 'stu'
0 row(s) in 1.2820 seconds


列出所有表
hbase(main):022:0> list
TABLE                                                                           
table                                                                           
test                                                                            
2 row(s) in 0.0240 seconds


=> ["table", "test"]
 

7.查询表是否存在

hbase(main):023:0> exists 'stu'
Table stu does not exist                                                        
0 row(s) in 0.0380 seconds


hbase(main):024:0> exists 'table'
Table table does exist                                                          
0 row(s) in 0.0280 seconds


 

8.判断表是否enable

hbase(main):025:0> is_enabled 'table'
true                                                                            
0 row(s) in 0.0150 seconds
 

9.判断表是否disable

hbase(main):026:0> is_disabled 'table'
false                                                                           
0 row(s) in 0.0140 seconds


把表设为disable 
hbase(main):027:0> disable 'table'
0 row(s) in 33.2980 seconds


hbase(main):028:0> is_disabled 'table'
true                                                                            
0 row(s) in 0.0140 seconds

 

三、DML操作

 

 

 

1.插入几条记录

hbase(main):029:0> put 'table','id','column_famaly1:name','tanggao'


ERROR: Failed 1 action: NotServingRegionException: 1 time, 


Here is some help for this command:
Put a cell 'value' at specified table/row/column and optionally
timestamp coordinates.  To put a cell value into table 'ns1:t1' or 't1'
at row 'r1' under column 'c1' marked with the time 'ts1', do:


  hbase> put 'ns1:t1', 'r1', 'c1', 'value'
  hbase> put 't1', 'r1', 'c1', 'value'
  hbase> put 't1', 'r1', 'c1', 'value', ts1
  hbase> put 't1', 'r1', 'c1', 'value', {ATTRIBUTES=>{'mykey'=>'myvalue'}}
  hbase> put 't1', 'r1', 'c1', 'value', ts1, {ATTRIBUTES=>{'mykey'=>'myvalue'}}
  hbase> put 't1', 'r1', 'c1', 'value', ts1, {VISIBILITY=>'PRIVATE|SECRET'}


The same commands also can be run on a table reference. Suppose you had a reference
t to table 't1', the corresponding command would be:


  hbase> t.put 'r1', 'c1', 'value', ts1, {ATTRIBUTES=>{'mykey'=>'myvalue'}}


报错了,因为要把表设为enable 
hbase(main):030:0> enable 'table'
0 row(s) in 1.3620 seconds




插入几条记录
hbase(main):031:0> put 'table','id','column_famaly1:name','tanggao'
0 row(s) in 0.0460 seconds


hbase(main):032:0> put 'table','id','column_famaly1:age','20'
0 row(s) in 0.0150 seconds


hbase(main):033:0> put 'table','id','column_famaly1:sex','boy'
0 row(s) in 0.0190 seconds
 

2.获取一条数据

获取一个id的所有数据

hbase(main):034:0> get 'table','id'
COLUMN                CELL                                                      
 column_famaly1:age   timestamp=1463055735107, value=20                         
 column_famaly1:name  timestamp=1463055709542, value=tanggao                    
 column_famaly1:sex   timestamp=1463055753395, value=boy                        
3 row(s) in 0.3200 seconds


 

获取一个id,一个列族的所有数据

hbase(main):035:0> get 'table','id','column_famaly1'
COLUMN                CELL                                                      
 column_famaly1:age   timestamp=1463055735107, value=20                         
 column_famaly1:name  timestamp=1463055709542, value=tanggao                    
 column_famaly1:sex   timestamp=1463055753395, value=boy                        
3 row(s) in 0.0270 seconds
 

获取一个id,一个列族中一个列的所有数据

hbase(main):036:0> get 'table','id','column_famaly1:name'
COLUMN                CELL                                                      
 column_famaly1:name  timestamp=1463055709542, value=tanggao                    
1 row(s) in 0.0140 seconds


 

3.更新一条记录

把id的age修改为22
hbase(main):037:0> put 'table','id','column_famaly1:age','22'
0 row(s) in 0.0160 seconds


hbase(main):038:0> get 'table','id','column_famaly1:age'
COLUMN                CELL                                                      
 column_famaly1:age   timestamp=1463055893492, value=22                         
1 row(s) in 0.0190 seconds

 


4.通过timestamp来获取两个版本的数据

hbase(main):039:0> get 'table','id',{COLUMN=>'column_famaly1:age',TIMESTAMP=>1463055735107}
COLUMN                CELL                                                      
 column_famaly1:age   timestamp=1463055735107, value=20                         
1 row(s) in 0.0340 seconds


hbase(main):040:0> get 'table','id',{COLUMN=>'column_famaly1:age',TIMESTAMP=>1463055893492}
COLUMN                CELL                                                      
 column_famaly1:age   timestamp=1463055893492, value=22                         
1 row(s) in 0.0140 seconds


 

5.全表扫描

hbase(main):041:0> scan 'table'
ROW                   COLUMN+CELL                                               
 id                   column=column_famaly1:age, timestamp=1463055893492, value=
                      22                                                        
 id                   column=column_famaly1:name, timestamp=1463055709542, value
                      =tanggao                                                  
 id                   column=column_famaly1:sex, timestamp=1463055753395, value=
                      boy                                                       
1 row(s) in 0.1520 seconds


 

6.删除行健为id的值的‘column_famaly1:age’字段

hbase(main):042:0> delete 'table','id','column_famaly1:age'
0 row(s) in 0.0200 seconds


hbase(main):043:0> get 'table','id'
COLUMN                CELL                                                      
 column_famaly1:name  timestamp=1463055709542, value=tanggao                    
 column_famaly1:sex   timestamp=1463055753395, value=boy                        
2 row(s) in 0.2430 seconds


 

7.删除整行

hbase(main):044:0> deleteall 'table','id'
0 row(s) in 0.0550 seconds


 

8.查询表中有多少行

hbase(main):045:0> count 'table'
0 row(s) in 0.0450 seconds
 

=> 0

 

再插入几条记录

hbase(main):046:0> put 'table','id','column_famaly1:age','20'
0 row(s) in 0.0160 seconds


hbase(main):047:0> put 'table','id','column_famaly1:name','tanggao'
0 row(s) in 0.0120 seconds


hbase(main):048:0> put 'table','id','column_famaly2:name','tanggao2'
0 row(s) in 0.0120 seconds



hbase(main):001:0> put 'table','id','column_famaly2:age','22'
0 row(s) in 0.4690 seconds


 

9.给‘id’这个行健增加'column_famaly1:addr'字段,并使用counter实现递增

hbase(main):002:0> incr 'table','id','column_famaly1:addr'
COUNTER VALUE = 1
0 row(s) in 0.0340 seconds




hbase(main):003:0> incr 'table','id','column_famaly1:addr'
COUNTER VALUE = 2
0 row(s) in 9.6250 seconds


hbase(main):004:0> get 'table','id','column_famaly1:addr'
COLUMN                CELL                                                      
 column_famaly1:addr  timestamp=1463056705124, value=\x00\x00\x00\x00\x00\x00\x0
                      0\x02                                                     
1 row(s) in 0.3930 seconds


hbase(main):005:0> incr 'table','id','column_famaly1:addr'
COUNTER VALUE = 3
0 row(s) in 7.3880 seconds


 

10.获取当前count的值

hbase(main):006:0> get_counter 'table','id','column_famaly1:addr'
COUNTER VALUE = 3


 

11.将整张表清空

hbase(main):007:0> truncate 'table'
Truncating 'table' table (it may take a while):
 - Disabling table...
 - Truncating table...
0 row(s) in 4.1510 seconds

hbase(main):008:0> 

HBase生产踩坑实录:LSM树、ZooKeeper超时与JVM内存陷阱 LSM树是现代KV存储的核心数据结构,其通过MemStore与SSTable分层设计实现高效写入,但背后隐藏着Compaction触发不可控、读写资源争抢、GC停顿放大等系统性风险。ZooKeeper作为分布式协调基石,其会话超时机制在真实IO与GC压力下极易失效,成为集群雪崩的导火索。而JVM堆内存配置若未区分MemStore、BlockCache与对象生命周期,将直接导致CMS并发失败与长时间Stop-The-World。这些并非配置疏漏,而是HBase 0.94.x架构在高负载下的固有行为模式。本文基 阅读详情

相关推荐

从科研小白到动物行为分析:我的DeepLabCut 3.0安装与初体验全记录

本文记录了从科研小白到成功安装并使用DeepLabCut 3.0进行动物行为分析的全过程。详细介绍了Anaconda环境配置、CUDA版本选择、DeepLabCut安装步骤及验证方法,并分享了初体验中的实用技巧和跨学科研究心得,为生物研究者提供了AI工具应用的实战指南。

weixin_30235225的博客 403

hbase 中文乱码 查询_如何在 HBase Shell 命令行正常查看十六进制编码的中文?哈哈~...

今天比较开心,只想哈哈哈哈哈啥也不多说了,直接看示例吧!绝对比我口才好~hbase(main):050:0> scan 'test'row column+cellrow-1 column=f:c1, timestamp=...

weixin_42506911的博客 557

傅里叶变换实战:用Python手把手教你分析音频频谱(附完整代码)

本文详细介绍了如何使用Python实现傅里叶变换进行音频频谱分析,涵盖音频加载、预处理、FFT应用、频谱可视化及特征提取等关键步骤。通过实战案例和完整代码,帮助开发者掌握数字信号处理技术,特别适合音频分析和音乐信息检索领域的应用。

weixin_29090677的博客 150

Hbase 常用 shell 操作:增删改查(create、put、delete、scan)

Hbase 常用 shell 操作:增删改查(create、scan、put、get)

sruokun的博客 1万+

国内网络环境下Leaflet加载OpenStreetMap地图的5种替代方案(附可用瓦片地址)

本文针对国内网络环境下Leaflet加载OpenStreetMap地图的常见问题,提供了5种可用的瓦片替代方案,包括OpenStreetMap.fr HOT、OpenStreetMap.de、CartoDB、Stamen和Thunderforest,并附上详细的代码示例和选择建议,帮助开发者解决地图加载问题。

qsc901234的博客 1706

Edge浏览器IE模式失效?最新142版本隐藏按钮的3种解决方案

本文针对Edge浏览器142版本中IE模式按钮消失的问题,提供了3种实用解决方案,包括注册表修改、手动添加网站到IE模式列表和企业策略部署方案,帮助用户解决兼容性问题,确保老旧系统正常访问。

weixin_28308325的博客 506

hbase时间戳注意事项

   hbase添加数据时使用的时间戳默认使用的是数据添加时的时间,在存储实时数据的时候是很方便,此时数据时间戳可以当做数据本身的一种属性来使用。但是如果处理的是离线数据,数据产生时间和数据存储时间没有任何关系,那时间戳这个重要的属性就被浪费来。    所以,hbase提供了自定义时间戳的方法。即在使用put方法添加数据的时候手动添加时间戳: public Put add(Cell kv) //...

齐梦星空 1万+

2026.1.9:最新VSCode集成claude插件完美解决方案,跳过登录界面,使用国内Kimi K2进行计费

本文介绍了如何安装配置Claude插件并连接Kimi K2 API的详细步骤:1)搜索安装Claude插件;2)进入设置关闭登录提示;3)在settings.json中添加API配置,包括ANTHROPIC_AUTH_TOKEN(需替换为Kimi API Key)和ANTHROPIC_BASE_URL;4)通过Kimi官网获取API Key。完成配置后即可正常使用该插件。文中配有完整的操作截图指引。

拥抱具身智能,昇腾Ascend C 8727

HBase常用命令(超全超详细)

本节我们将向您展示如何使用 hbase shell CLI 在 HBase 中创建表、在表中插入行、对表执行放置和扫描操作、启用或禁用表以及启动和停止 HBase。主要讲述了HBase的CRUD等基本DDL和DML操作。HBase Shell 中的删除键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。

未来在这儿的专栏 3万+

从 0 到 1 打造一个“超级 IP 智能体”

这篇文章介绍了一个"超级IP智能体"的技术架构和实现方案。该项目构建了一个多模态内容生成流水线,主要流程包括:1)视频下载和音频提取;2)语音识别转换为文字稿;3)使用大语言模型对文案进行仿写和润色;4)语音合成;5)数字人口型同步;6)视频后期处理。文章详细介绍了如何使用Python和Hugging Face开源模型搭建环境,并重点展示了视频下载、语音识别(采用Whisper模型)以及文案仿写(使用Qwen1.5-7B-Chat模型)等核心模块的代码实现。所有处理均针对M3芯片Mac优

AI天才研究院 1150

YOLO26 多模态融合技术:RGB+红外/深度/雷达融合

YOLO(You Only Look Once)是一种流行的目标检测算法,其最大特点是快速且端到端地完成图像中所有目标的检测与分类任务。YOLO首次在2016年由Joseph Redmon等人提出,彻底改变了传统目标检测(如R-CNN系列)的思路,被广泛应用于自动驾驶、视频监控、工业质检等场景。

一键难忘的博客 3526

15_hbase一

大数据数据库之HBase )] 准备 安装好对应版本的hadoop集群,并启动 安装好对应版本的zookeeper集群,并启动 主题 HBase的核心概念 HBase的特点 HBase的架构图 HBase存储数据结构 HBase的安装部署 HBase shell命令基本操作 目标 理解HBase的核心概念 掌握HBase的特点 掌握HBase的架构 掌握HBase存储数据结构 掌...

TU_JCN的博客 673

语音信号的AGC自适应增益调整matlab仿真

语音信号的自动增益控制(Automatic Gain Control,AGC)是音频处理领域中的一项重要技术。其核心功能是实时调整输入信号的幅度,使其保持在一定范围内,以优化输出信号的质量。AGC广泛应用于语音通信、语音识别、音频录制和播放等领域,旨在解决输入信号幅度波动问题,确保输出信号的稳定性和清晰度。一、AGC的基本原理1.1 幅度调整自动增益控制的基本原理是根据输入信号的幅度动态地调整系统的增益。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 927

Hbase01

大数据数据库之hbase 一、课前准备 安装好对应版本的hadoop集群 安装好对应版本的zookeeper集群 二、课堂主题 本堂课主要围绕hbase的基础知识点进行讲解。主要包括以下几个方面 hbase的核心概念 hbase的特点 hbase的架构图 hbase存储数据结构 hbase的安装部署 hbase shell命令基本操作 三、课堂目标 理解hbase的核心概念 掌握hbas...

qq_41953252的博客 288

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HbaseGUI:告别命令行,3分钟掌握HBase可视化管理的终极指南

还在为HBase复杂的命令行操作而烦恼吗?数据团队每天花费数小时在HBase Shell中调试命令,面对版本兼容性问题束手无策,为表结构设计而头疼?HbaseGUI正是为解决这些痛点而生的开源可视化工具,让HBase管理变得简单高效。 ## 为什么你需要HbaseGUI:从命令行噩梦到可视化救星 想象一下这样的场景:凌晨3点,线上业务突然出现数据查询异常,运维人员需要在HBase Shell中

gitblog_00358的博客 220

HBase Shell高效使用技巧:这些隐藏命令能让你的大数据操作快人一步

本文深入探讨HBase Shell的高效使用技巧,揭示批量操作、模式修改和高级查询等隐藏命令,显著提升大数据处理效率。通过优化scan缓存、预分区创建表和精准控制扫描范围等技巧,帮助开发者快速掌握HBase Shell的高级功能,实现数据操作的速度飞跃。

weixin_29309213的博客 198

15分钟快速搭建Pinpoint:一站式分布式系统性能监控解决方案

你是否曾为排查分布式系统中的性能问题而苦恼?当多个微服务相互调用时,一个简单的接口慢响应可能涉及数十个服务节点,传统的日志排查如同大海捞针。今天,我将为你介绍Pinpoint——一款开源的**全链路追踪系统**,它能让你像查看地图一样直观地了解服务间的调用关系,快速定位性能瓶颈。更重要的是,我将手把手教你如何在15分钟内完成Pinpoint的完整部署,让你轻松掌握分布式系统的性能脉搏。🚀 ##

gitblog_00994的博客 719

视频教程-大数据之hbase详解-Java

大数据之hbase详解 资深大数据、java讲师,十年开发经验,曾经任职于北...

weixin_33468390的博客 180

HBase集群监控与调优实战指南

分布式数据库HBase作为大数据生态的核心组件,其性能优化与稳定性保障是数据架构的关键课题。通过JVM内存管理、RegionServer资源分配等底层机制,HBase实现了海量数据的高效存储与访问。在PB级数据处理场景中,合理的监控体系能预防RegionServer内存泄漏等典型故障,而参数调优可显著提升读写性能。本文结合Prometheus监控方案与BucketCache等实战技术,详细解析如何构建从指标采集到故障排查的完整运维体系,特别适用于物联网时序数据、金融交易记录等高并发场景。

weixin_30352191的博客 420

视频教程-新版全面系统完整的Hbase视频教程-大数据

新版全面系统完整的Hbase视频教程 张长志技术全才、擅长领域:区块链、大数...

weixin_32645681的博客 807

视频教程-大数据视频_HBase视频教程-大数据

大数据视频_HBase视频教程 尚硅谷讲师,辽宁工程技术大学硕士,曾先后就职...

weixin_27140325的博客 240

视频教程-通俗易懂的Hbase升级版教程(含配套资料)-大数据

通俗易懂的Hbase升级版教程(含配套资料) 张长志技术全才、擅长领域:区块...

weixin_33437354的博客 202

HBase行数统计

分布式数据库HBase本身不支持SQL语法,要统计表的行数,只能通过其他的方式来实现。HBase的shell脚本提供了count命令,但该命令只是简单地scan全表然后将行数累加,效率很低只能用于测试或者统计小表了。另一解决方案是使用MapReduce,HBase自身提供了org.apache.hadoop.hbase.mapreduce.RowCounter类,可以方便地在命令行调用进行统计,但

4216
上一篇: 4)手动触发major compaction
下一篇: Phoenix二级索引(Secondary Indexing)的使用
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值