HbaseShell命令

简介: 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(可选操作)
目录
相关文章
|
分布式数据库 数据库 Hbase
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
573 0
|
大数据 分布式数据库 Hbase
Hbase学习三:Hbase常用命令总结
Hbase学习三:Hbase常用命令总结
5196 0
|
SQL 大数据 数据处理
Flink SQL 详解:流批一体处理的强大工具
Flink SQL 是为应对传统数据处理框架中流批分离的问题而诞生的,它融合了SQL的简洁性和Flink的强大流批处理能力,降低了大数据处理门槛。其核心工作原理包括生成逻辑执行计划、查询优化和构建算子树,确保高效执行。Flink SQL 支持过滤、投影、聚合、连接和窗口等常用算子,实现了流批一体处理,极大提高了开发效率和代码复用性。通过统一的API和语法,Flink SQL 能够灵活应对实时和离线数据分析场景,为企业提供强大的数据处理能力。
2555 27
|
存储 Shell 分布式数据库
Hbase 的基本shell 命令
Hbase 的基本shell 命令
1354 8
|
消息中间件 SQL Kafka
实时计算 Flink版产品使用问题之通过设置什么可以自动清理旧的checkpoint数据
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
存储 监控 大数据
HBase全网最佳学习资料汇总
HBase这几年在国内使用的越来越广泛,在一定规模的企业中几乎是必备存储引擎,互联网企业阿里巴巴、百度、腾讯、京东、小米都有数千台的HBase集群,中国电信的话单、中国人寿的保单都是存储在HBase中。
28446 99
|
缓存 分布式数据库 API
hbase查询速度很慢
hbase查询速度很慢
1221 1

热门文章

最新文章