HbaseShell命令

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: HbaseShell命令

命名空间

查看指定命名空间表

list_namespace_tables 'hbase'

创建namespace

create_namespace 'test'

删除namespace

drop_namespace 'test'

查看namespace

describe_namespace 'hbase'

列出所有namespace

list_namespace

在namespace下创建表

create 'ai_ns:testtable', 'fm1'

基础命令

查看表结构

desc 'tableName'
describe 'tableName'

设置TTL

 # 语法:alter 't1', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}
 # 例如:修改表test1的cf的TTL为180天
 # TTL 单位为秒
disable 'test1'
alter 'test1',{NAME=>'body',TTL=>'15552000'},{NAME=>'meta', TTL=>'15552000'}
enable 'test1'

PUT添加数据

put 表名 ,rowkey,列名(列族:列名),value

删除表

disable 't1'
drop 't1'

删除列簇

disable 'table1'
alter 'table1', {NAME=>'tab1_add', METHOD=>'delete'}
enable 'table1'

删除整行数据

deleteall 'tableName', 'RowKey'

删除一行数据中的某一列

delete 'tableName', 'RowKey', 'ColumnFamily:ColumnName'

在已创建的表添加列簇

alter 'tablename', {NAME=> 'fn'}

清空数据,并清除分区

truncate 'tableName'

仅清空数据

truncate_preserve 'tableName'

统计表数据总量

MR方式统计

$HBASE_HOME/bin/hbase   org.apache.hadoop.hbase.mapreduce.RowCounter tablename'

HbaseShell方式统计

count 'table',{INTERVAL=>NUM,CACHE=>10000}
  • INTERVAL 每次间隔多少显示一次
  • CACHE 后台匹配每次统计多少,这个会实际影响统计速度,可以适当提升

创建表

创建表,并指定压缩格式

create 'ns:vt_date', {NAME => 'fn', VERSIONS=>1,COMPRESSION=>'snappy'}

参数详解

数据删除是否物理删除 KEEP_DELETED_CELLS

KEEP_DELETED_CELLS 的作用就是在major compaction发生的时候,决定要不要清理旧数据。这里需要注意一点,即便 KEEP_DELETED_CELLS 设置为True,数据仍然会因为过期而被清理(HBsae表中的TTL属性)。

创建表是添加参数:

修改表参数:

alter 'test110' , {NAME=>'fn',KEEP_DELETED_CELLS=> TRUE}

查看表结构:

hbase(main):008:0> desc 'test110'
Table test110 is ENABLED                                                                                                                 
test110                                                                                                                                  
COLUMN FAMILIES DESCRIPTION                                                                                                              
{NAME => 'fn', VERSIONS => '10', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'TRUE', CACHE_D
ATA_ON_WRITE => 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => '
ROW', CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRE
SSION => 'GZ', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}                                                                               
1 row(s)

添加测试数据:

put 'test110','1','fn:a',1
put 'test110','1','fn:b',1
put 'test110','2','fn:a',1
put 'test110','2','fn:b',1
delete 'test110','1','fn:a'
delete 'test110','2','fn:a'

# 查看删除的数据,
hbase(main):022:0> scan 'test110',{RAW=>TRUE}
ROW                                 COLUMN+CELL                                                                                          
 1                                  column=fn:a, timestamp=1673332138815, type=Delete                                                    
 1                                  column=fn:a, timestamp=1673332138815, value=1                                                                                                            
 1                                  column=fn:b, timestamp=1673332138955, value=1                                                        
 2                                  column=fn:a, timestamp=1673332139075, type=Delete                                                    
 2                                  column=fn:a, timestamp=1673332139075, value=1                                                        
 2                                  column=fn:b, timestamp=1673332139899, value=1

REPLICATION_SCOPE 复制范围

HBase提供了跨级群同步的功能,本地集群的数据更新可以及时同步到其他集群。复制范围(replication scope)的参数默认为0,表示复制功能处于关闭状态。

查询

根据timestamp范围查询数据

# 说明
scan tableName,{TIMERANGE=>[starttime,endtime],LIMIT=>1}
# 样例
scan 'ns:vt',{TIMERANGE=>[1506700800000,1608479686000],LIMIT=>1}

RAW参数

开启Raw模式会返回包括已添加删除标记但是未实际删除的数据。

scan 'test110',{RAW=>TRUE}

Hbase Shell 返回中文

hbase(main):050:0>> get 't1','r1','f:c1:toString'
hbase(main):051:0> scan 'test', {FORMATTER => 'toString'}
hbase(main):052:0> scan 'test', {FORMATTER => 'toString',LIMIT=>1,COLUMN=>'f:c4'}
hbase(main):053:0> scan 'test', {FORMATTER_CLASS => 'org.apache.hadoop.hbase.util.Bytes', FORMATTER => 'toString'}
hbase(main):054:0> scan 'test', {FORMATTER_CLASS => 'org.apache.hadoop.hbase.util.Bytes', FORMATTER => 'toString', COLUMN=>'f:c4'}
hbase(main):004:0> scan 'test', {COLUMNS => ['f:c1:toString','f:c2:toString'] }
hbase(main):003:0> scan 'test', {COLUMNS => ['f:c1:c(org.apache.hadoop.hbase.util.Bytes).toString','f:c3:c(org.apache.hadoop.hbase.util.Bytes).toString'] }
hbase(main):055:0> scan 'test', {COLUMNS => ['f:c1:toString','f:c4:c(org.apache.hadoop.hbase.util.Bytes).toString'] }
hbase(main):058:0> get 'test','row-2','f:c2:toString'
对于Int型、Long型数值,支持toInt|toLong语法。不常用的语法这里就不再论述了。

查看Hbase Meta表

scan 'hbase:meta'

查询某个表某个列的数据

scan 'tableName',{COLUMN=>列族:列,LIMIT=>需要查看条数}

查询多版本数据

get 'test06262','woshikey1',{COLUMN=>'f2',VERSION=>10}
scan 'user_label',VERSIONS=>2

移动Region

手动移动Region

echo "move '9c5c9e1aa5f88739224e17dfd7602bb1','shxcb99.zh,16020,1513325294105" | hbase shell

image-20230222171303985

image-20230222171311128

参考:http://blog.csdn.net/knowledgeaaa/article/details/72844026

手动Split Region

# 语法:split 'regionName', 'splitKey'

手动出发Major Compaction

#语法:
#Compact all regions in a table:
hbase> major_compact 't1'
#Compact an entire region:
hbase> major_compact 'r1'
#Compact a single column family within a region:
hbase> major_compact 'r1', 'c1'
#Compact a single column family within a table:
hbase> major_compact 't1', 'c1'

强制删除Hbase表

1.删除zk中的数据(在装有zk的节点上执行)'
    zookeeper-client -server localhost:2181'
    [zk: localhost:2181(CONNECTED) 2] rmr /hbase/table/hbase_tablename'
2.删除HDFS上的数据'
    su - hdfs'
    hdfs dfs fs -rmr /hbase/data/default/hbase_tablename'
3.删除meta表信息,在meta表查询'
  3.1使用hbase shell筛选rowkey'
   echo "scan 'hbase:meta'" | hbase shell | grep hbase_tablename | awk -F 'column' '{print $1}' | sort | uniq'
  3.2删除meta表中3.1的rowkey'
   delete 'hbase:meta','rowkey','info:sn''
   delete 'hbase:meta','rowkey','info:name''
4.重启Hbase(可选操作)
目录
相关文章
|
4月前
|
人工智能 API 定位技术
MCP全方位扫盲
MCP(Model Context Protocol)是由Anthropic提出的协议,旨在标准化大模型与外部数据源和工具的通信方式。其核心架构包括MCP Client(客户端)和MCP Server(服务端),通过标准化接口实现解耦,支持不同LLM无缝调用工具。相比传统方法,MCP简化了Prompt工程,减少定制代码,提升复用性。实际场景中,如天气查询或支付处理,MCP可智能调用对应工具,优化用户体验。MCP的核心价值在于标准化通信、统一工具描述及动态兼容性,成为大模型与外部服务的智能桥梁。
|
消息中间件 分布式计算 Kafka
Kafka(四)【Kafka 消费者】(4)
Kafka(四)【Kafka 消费者】
|
关系型数据库 MySQL 网络安全
VPS搭建WordPress
如果你想搭建的WordPress拥有一个较好的性能的话,那么你可以选择在VPS上搭建WordPress。本文将会带你从零开始,在VPS上一步一步敲代码来搭建WordPress。首先,你需要注册一台VPS,登录你的VPS先搭建好LAMP环境;接下来你需要将你的域名已经解析到你的VPS。在域名解析成功后,你需要创建MySQL数据库,然后安装PHP插件并配置Apache,接下来下载并配置WordPress,最后是安装SSL证书。
492 1
VPS搭建WordPress
|
Java
Jinfo 查看 jvm 配置及使用 Jstat 查看堆内存使用与垃圾回收
Jinfo 查看 jvm 配置及使用 Jstat 查看堆内存使用与垃圾回收
416 5
|
大数据 分布式数据库 Hbase
Hbase学习三:Hbase常用命令总结
Hbase学习三:Hbase常用命令总结
2977 0
|
存储 分布式数据库
hbase-region个数
hbase-region数量 单个regionserver配置region个数的两种方案: 根据官方推荐配置(硬盘容量);根据内存配置 一:官方推荐配置(硬盘容量): 官方文档给出的推荐: regionserver上的region个数范围在20~200;每个region的大小在10G~30G之间,比较符合实际。
3276 0
|
Ubuntu 网络协议
Ubuntu 系统中网络总是断掉重新连接
Ubuntu 系统中网络总是断掉重新连接
645 5
|
SQL 监控 关系型数据库
MySQL 如何保证主备的数据一致性的?
MySQL通过使用主从复制(Master-Slave Replication)来实现主备的数据一致性。主从复制是一种常见的数据复制技术,它将一个MySQL数据库服务器(主服务器)的数据复制到一个或多个其他MySQL数据库服务器(从服务器),以实现数据的冗余备份、读写分离等目的。以下是MySQL保证主备数据一致性的一些关键点: 1. **二进制日志(Binary Log)**:主服务器将所有的数据更改操作(如INSERT、UPDATE、DELETE)以二进制日志的形式记录下来,并定期将这些日志发送给从服务器。从服务器收到二进制日志后,按照主服务器的执行顺序逐条应用这些日志,从而保持数据的一致性
1592 0
|
缓存 分布式数据库 API
hbase查询速度很慢
hbase查询速度很慢
881 1

热门文章

最新文章