4)手动触发major compaction

关于Hbase手动实现Major Compact的办法 本人小菜,如有错误或疏漏之处,请各位大牛批评指正,求共同进步。发表此博文,旨在帮助遇到类似问题的朋友一点小的建议或思路。废话少说,开始吧。。。       最近,因项目需要。Hbase数据量很大,项目组提出需要对Hbase中目前所有表(当前有5个)进行major_compact操作。是按照需要,每天凌晨3点自动执行major_compact操作。             具体实现:     阅读详情

 

    1. 进入hbase shell console
      $HBASE_HOME/bin/hbase shell
      如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户

      hbase(main)> whoami

    2. 表的管理
      1)查看有哪些表

      hbase(main)> list

      2)创建表

      # 语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}

      # 例如:创建表t1,有两个family name:f1,f2,且版本数均为2

      hbase(main)> create 't1',{NAME => 'f1', VERSIONS => 2},{NAME => 'f2', VERSIONS => 2}

      3)删除表
      分两步:首先disable,然后drop
      例如:删除表t1

      hbase(main)> disable 't1'

      hbase(main)> drop 't1'

      4)查看表的结构

      # 语法:describe <table>

      # 例如:查看表t1的结构

      hbase(main)> describe 't1'

      5)修改表结构
      修改表结构必须先disable

      # 语法:alter 't1', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}

      # 例如:修改表test1的cf的TTL为180天

      hbase(main)> disable 'test1'

      hbase(main)> alter 'test1',{NAME=>'body',TTL=>'15552000'},{NAME=>'meta', TTL=>'15552000'}

      hbase(main)> enable 'test1'

    3. 权限管理
      1)分配权限

      # 语法 : grant <user> <permissions> <table> <column family> <column qualifier> 参数后面用逗号分隔

      # 权限用五个字母表示: "RWXCA".

      # READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')

      # 例如,给用户‘test'分配对表t1有读写的权限,

      hbase(main)> grant 'test','RW','t1'

      2)查看权限

      # 语法:user_permission <table>

      # 例如,查看表t1的权限列表

      hbase(main)> user_permission 't1'

      3)收回权限

      # 与分配权限类似,语法:revoke <user> <table> <column family> <column qualifier>

      # 例如,收回test用户在表t1上的权限

      hbase(main)> revoke 'test','t1'

    4. 表数据的增删改查
      1)添加数据

      # 语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>

      # 例如:给表t1的添加一行记录:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系统默认

      hbase(main)> put 't1','rowkey001','f1:col1','value01'

      用法比较单一。

      2)查询数据
      a)查询某行记录

      # 语法:get <table>,<rowkey>,[<family:column>,....]

      # 例如:查询表t1,rowkey001中的f1下的col1的值

      hbase(main)> get 't1','rowkey001', 'f1:col1'

      # 或者:

      hbase(main)> get 't1','rowkey001', {COLUMN=>'f1:col1'}

      # 查询表t1,rowke002中的f1下的所有列值

      hbase(main)> get 't1','rowkey001'

      b)扫描表

      # 语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}

      # 另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能

      # 例如:扫描表t1的前5条数据

      hbase(main)> scan 't1',{LIMIT=>5}

      c)查询表中的数据行数

      # 语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}

      # INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

      # 例如,查询表t1中的行数,每100条显示一次,缓存区为500

      hbase(main)> count 't1', {INTERVAL => 100, CACHE => 500}

      3)删除数据
      a )删除行中的某个列值

      # 语法:delete <table>, <rowkey>,  <family:column> , <timestamp>,必须指定列名

      # 例如:删除表t1,rowkey001中的f1:col1的数据

      hbase(main)> delete 't1','rowkey001','f1:col1'

      注:将删除改行f1:col1列所有版本的数据
      b )删除行

      # 语法:deleteall <table>, <rowkey>,  <family:column> , <timestamp>,可以不指定列名,删除整行数据

      # 例如:删除表t1,rowk001的数据

      hbase(main)> deleteall 't1','rowkey001'

      c)删除表中的所有数据

      # 语法: truncate <table>

      # 其具体过程是:disable table -> drop table -> create table

      # 例如:删除表t1的所有数据

      hbase(main)> truncate 't1'

    5. Region管理
      1)移动region

      # 语法:move 'encodeRegionName', 'ServerName'

      # encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表

      # 示例

      hbase(main)>move '4343995a58be8e5bbc739af1e91cd72d', 'db-41.xxx.xxx.org,60020,1390274516739'

      2)开启/关闭region

      # 语法:balance_switch true|false

      hbase(main)> balance_switch

      3)手动split

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

      4)手动触发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'

    6. 配置管理及节点重启
      1)修改hdfs配置
      hdfs配置位置:/etc/hadoop/conf

      # 同步hdfs配置

      cat /home/hadoop/slaves|xargs -i -t scp /etc/hadoop/conf/hdfs-site.xml hadoop@{}:/etc/hadoop/conf/hdfs-site.xml

      #关闭:

      cat /home/hadoop/slaves|xargs -i -t ssh hadoop@{} "sudo /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop datanode"

      #启动:

      cat /home/hadoop/slaves|xargs -i -t ssh hadoop@{} "sudo /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start datanode"

      2)修改hbase配置
      hbase配置位置:

      # 同步hbase配置

      cat /home/hadoop/hbase/conf/regionservers|xargs -i -t scp /home/hadoop/hbase/conf/hbase-site.xml hadoop@{}:/home/hadoop/hbase/conf/hbase-site.xml

       

      # graceful重启

      cd ~/hbase

      bin/graceful_stop.sh --restart --reload --debug inspurXXX.xxx.xxx.org

分类: HBase

标签: hbase

好文要顶 关注我 收藏该文  

残雪余香
关注 - 15
粉丝 - 126

+加关注

14

0

« 上一篇:HBase介绍及简易安装
» 下一篇:非常简单实用的Python HTTP服务

HBase Shell 实战:手动触发 Major Compaction 优化存储与查询性能 本文详细介绍了HBase Shell中手动触发Major Compaction的实战操作与优化策略。通过major_compact命令整理数据文件,提升查询性能并节省存储空间,同时分享生产环境中的最佳实践与常见问题解决方案,帮助开发者高效管理HBase集群。 阅读详情

相关推荐

【大数据HBase 系列】Hbase 常用 Shell 命令

【大数据HBase 系列】Hbase 常用 Shell 命令

weixin_54707168的博客 2200

常用的HBase shell基本命令

进入hbase shell ,首先启动Hadoop,在启动hbase,然后启动hbase shellcd /usr/local/hadoop --> ./sbin/start-dfs.sh (退出Hadoop:./sbin/stop-dfs.sh)cd /usr/local/hbase --> ./bin/start-hbase.sh (退出hbase:./bin/stop-hbase.sh)直接输入 :hbase shell(./bin/hbase shell) (退出shell:e

摆烂小猴子 6124

HBase学习七:Compaction

Compaction是从一个Region的一个Store中选择部分HFile文件进行合并。其目的为了减少 HFile 的个数跟清理掉过期和删除的数据。合并原理是,先从这些待合并的数据文件中依次读出KeyValue,再由小到大排序后写入一个新的文件。之后,这个新生成的文件就会取代之前已合并的所有文件对外提供服务。HBase根据合并规模将Compaction分为两类:Minor Compaction和Major Compaction。

qwerty1372431588的博客 910

hbase shell操作命令大全

一、hbase web操作 访问地址 http://h71:60010 h71的ip配置在$HBASE_HOME/conf/hbase-site.xml中 ip映射成主机名 在env/hosts中配置 在windows系统中的C:\Windows\System32\drivers\etc目录下的hosts文件中配置) 二、hbase shell 基本操作:

小强签名设计 的博客 1万+

HBase 计划外启动 Major Compaction 的原因

HBase 的 Compaction 有两个线程池,一个是为 Minor Compaction 准备的, 一个是为 Major Compaction 准备的,hbase.regionserver.thread.compaction.throttle 是决定 Compaction 请求放入哪个线程池的阈值,当待合并文件的总大小小于这个阈值时,就是一个 Minor Compaction,当待合并文件的总大小大于这个阈值时,就是一个 Major Compaction。这个阈值的默认值是:2.5 GB (26843

Laurence的技术博客 868

使用Jacob实现将Word文件转换为Pdf文件

如果是首次使用 jacob,建议先直接从 github上下载 zip包,因为在实现Word转Pdf的时候,不仅需要用到 jacob.jar,还需要 jacob.dll 库,而zip包中都有。官方使用文档可以参考:https://github.com/freemansoft/jacob-project/blob/main/docs/UsingJacob.md。// 如果安装的是微软的 Office,需要使用 Word.Application。

qq_41672950的博客 752

HBase compaction了解和手动触发major_compaction方法

Major Compaction 的作用: 1.将一个Region下的所有StoreFile合并成一个StoreFile文件 2.对于删除、过期、多余版本的数据进行清除 3.提高读写数据的效率 HBase中实现了两种compaction的方式: 1.Minor compaction:只用来做部分文件的合并操作以及包括minVersion=0并且设置ttl的过期版本清理,不做任何删除数据、多版本数据的清理工作。 2.Major compaction:是对Region下的HStore的所有StoreFile执行

c18092694487t的博客 7317

实战教程:如何用Python+小波变换+CNN搞定医学影像中的条纹噪声(附完整代码)

本文提供了一套完整的实战方案,指导如何利用Python结合小波变换与卷积神经网络(CNN)去除医学影像中的条纹噪声。该方法通过小波变换精准定位噪声,再使用轻量化CNN进行针对性清除,有效保护图像细节,并附有可运行的完整代码,为医学影像处理与AI分析提供高效工具。

weixin_29056101的博客 271

HBASE手动触发major_compact

定时执行脚本 #!/bin/bash source /etc/profile sh ./hbase shell <<EOF major_compact 'table_name' EOF major_compact 语法: #Compact all regions in a table: hbase> major_compact 't1' #Compact an entire...

刘本龙的专栏 4293

Label Studio + SAM2分割半自动标注与yolo11训练

Label Studio + SAM2分割半自动标注与yolo11训练

schFallingCloud 1409

ENVI哨兵一号数据处理

使用ENVI+SarScape处理哨兵数据

Rjjjjj11的博客 2万+

HBase Compaction调优实战:Minor/Major Compaction触发条件与资源控制

HBase的Compaction机制对读写性能至关重要,本文深入剖析Minor/Major Compaction的触发条件与资源控制策略,通过参数调优与最佳实践,帮助读者平衡读写性能,减少资源消耗,提升集群稳定性。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 410

从Bit到MCS:深度解析Xilinx FPGA程序固化流程与文件选型

本文深度解析Xilinx FPGA程序从调试到量产的固化流程,重点对比BIT、BIN、MCS和ELF四种文件格式的特性与适用场景。针对工业级应用,详细讲解MCS文件的生成优化、Flash烧录避坑指南及三级验证流程,并分享多镜像管理、加密安全等高级技巧,帮助开发者提升FPGA量产可靠性。

weixin_30924239的博客 326

LevelDB 源码剖析(八)Compaction模块:Minor Compaction、Major Compaction、文件选取、执行流程、垃圾回收

LevelDB 源码剖析(八)Compaction 模块:Minor Compaction、Major Compaction、文件选取、执行流程、垃圾回收

凌桓丶的博客 2375

ABAP 里的 XML 与 JSON 处理,一套从接口落地到 Clean Core 的完整参考

ABAP 里的 XML 和 JSON 处理并不只是几段工具类调用。iXML、sXML、、XCO、、code page conversion、GZIP、对象序列化,这些能力背后对应的是不同的数据规模、访问模式、接口契约和运行时边界。小报文、复杂树结构、需要修改节点,iXML 很顺手。大报文、顺序读写、内存敏感,sXML 更可靠。ABAP 结构和 XML、JSON 之间要做标准转换,是主干。现代 JSON API、ABAP Cloud、命名转换,XCO 值得优先考虑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 226

论文翻译:Automatic Lesson Plan Generation via Large Language Models with Self-critique Prompting

在本文中,我们利用大型语言模型(LLMs)的理解和生成能力来自动生成定制化的课程计划。这解决了传统计划可能无法充分满足不同教学环境和学生群体的特定需求的常见挑战。我们提出了一个新颖的三阶段过程,包括使用检索增强生成(RAG)逐步生成课程计划的每个关键组成部分,通过LLMs进行自我批评,以及随后的细化。我们使用这种方法为小学2至5年级生成了涵盖80多个主题的数学课程计划。邀请了三位经验丰富的教育工作者制定全面的课程计划评估标准,然后使用这些标准将我们的LLM生成的课程计划与同一主题的实际课程计划进行基准比较。

CSPhD-winston的博客 1103

Hbase中compaction的触发条件

1. memstore flush之后触发; 2. 客户端通过shell或者API触发; 3. 后台线程CompactionChecker定期触发,周期为:hbase.server.thread.wakefrequency*hbase.server.compactchecker.interval.multiplier。 上述三个条件触发了compaction请求后,真正的compaction

程序人生 4360

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备

vue3入门实战:环境准备篇

感谢阅读 1385

【leveldb】Compact(二 十 三):Major Compaction

上一篇我们介绍了进行Major Compaction所需要的对象数据实体Compaction。对整个Compact流程的介绍可点此Compact触发流程 本片我们来着重介绍下Compact的Major Compaction流程。 Major的作用

蜗牛,为梦想而生。 1127

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC中sqlite的使用

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

HBase的Compaction理解

本文是对自己了解到的HBase Compaction机制做个总结。 为什么需要Compaction: 因为HBase使用了LSM树,将写数据和索引时的随机写转变成了顺序写磁盘,提高了写入时的性能。但是小文件过多的话,查询数据时的I/O次数会增加,影响查询性能。所以HBase提供了Compaction机制,将小文件合并成大文件,目的是查询性能。 Minor and M...

淡定一生2333的博客 3693

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

hbase major compact 触发条件

我整理的一些关于【数据】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/eDOcp1如何触发 HBase Major Compaction 引言 在使用 HBase 作为一个 NoSQL 数据存储解决方案时,数据的管理和维护至关重要。其中,Major Compaction 是...

weixin_40510212的博客 435

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

深入分析HBase Compaction机制

Compaction介绍 Compaction是buffer->flush->merge的Log-Structured Merge-Tree模型的关键操作,主要起到如下几个作用: 1)合并文件 2)清除删除、过期、多余版本的数据 3)提高读写数据的效率 Minor & Major Compaction的区别 1)Minor操作只用来做部分文件的合并操作以及包括minVersion=0并

Hadoop、HBase、ElasticSearch、Storm、Kafka、Spark 1万+

HBase Compaction

文章目录1. Compaction1.1. 基本原理1.2. Compaction 的核心作用1.3. Compaction 基本流程1.3.1. Compaction 触发时机1.3.2. 待合并 HFile 集合选择策略 1. Compaction Compaction是以Store为单位进行的 Compaction使读取延迟更加稳定,但是读取时间产生了很大的毛刺 Compaction 操作的主要源头来自flush操作 根据待合并HFile文件的选择策略可以得知,正在进行Compaction的HFi

初阳 2802

HBase compaction 分析

Hbase为了防止小文件(被刷到磁盘的menstore)过多,保证查询效率,HBase需要在必要的时候将这些小的store file合并成相对较大的store file,这个过程就称之为compaction。在HBase中,主要存在两种类型的compaction:minor compaction和major compaction。 major compaction 的功能是将所有的store

Kuzury 2520

HBase—Compaction之详解

1.概述 Compaction核心功能是合并小文件,HBase的Compaction分为MinorCompaction和majorCompaction两类 MinorCompaction选取部分小的,相邻的HFile文件进行合并 MajorCompaction是将一个Store中的所有HFile文件合并成一个更大的HFile 2.合并流程 HBase启动一个独立线程从对应的Store中选取要合并的HFile 从这些HFile中依次读出KeyValue,进...

大树1993 938
上一篇: HBase在split和major compact的一些非通常情况下的触发条件
下一篇: 15分钟熟悉HBase Shell命令
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值