关于Hbase手动实现Major Compact的办法
本人小菜,如有错误或疏漏之处,请各位大牛批评指正,求共同进步。发表此博文,旨在帮助遇到类似问题的朋友一点小的建议或思路。废话少说,开始吧。。。
最近,因项目需要。Hbase数据量很大,项目组提出需要对Hbase中目前所有表(当前有5个)进行major_compact操作。是按照需要,每天凌晨3点自动执行major_compact操作。
具体实现:
前期方案:调用hbase相关API,如:hbaseadmin下面有major_compact方法。可以用java等一门程序语言,通过major_compact方法来控制Hbase的compact操作。但是,需要连接数据库具体操作;而且要打包程序,通过这个单独的应用程序来执行major_compact操作。
最后方案,我联想到既然在hbase shell下面有提供major_compact这个操作。那么是否可以采用类似shell脚本方式来管理hbase。答案是肯定的,搜集相关资料,我发现,hbase shell 是支持ruby相关操作的。于是我在ruby中去调用major_compact这个方法。验证结果是肯定的,在ruby下,major_compact就如在hbase shell中一样,成功地得到了执行。
具体步骤:
1. 在Linux中新建一个*.rb(ruby文件),把hbase shell中的major_compact()操作直接放入这个ruby文件中去执行。
.rb文件中:
major_compact("tablename") #一次只能执行一张表的major_compact操作
2. 写一个shell脚本文件,在shell中去执行这个ruby文件,当然(让这个ruby文件在hbase shell中运行),利用crontab命令实现定时(凌晨3点)自动执行hbase的major_compact任务。
.sh文件中:
hbase shell ./*.rb #当然此处添加你自己的文件所在位置
总结:之所以要这样做,是为了实现我们定时完成major_compact()操作,而且我们想操作哪些表,哪些表就可以得到major_compact()结果。当然,由于之前我提示过,major_compact()方法,它本身是hbase shell下面的功能,根据说明,它一次只能操作一个表名,那么如果我要一次操作hbase中所有表且要定时,那么可以考虑自动执行或者我们本博文中提到的方法,然后要外加获取所有表,对所有表进行遍历表名,依次执行major_compact操作。这个只是目前思路,没有用到。
PS:以上若有不正确或者有什么建议和意见,请各位同事同仁,大牛前辈些批评指正,共同学习进步。
关于Hbase手动实现Major Compact的办法相关推荐
- hbase major compact脚本
不同版本的hbase,list命令打印出来的东西不同,脚本要根据版本修改的,别傻乎乎的拿去就用,本人已经踩过坑了 注意对于自动balance来说, 只需要关注三个命令: balance_switch ...
- HBase解决Region Server Compact过程占用大量网络出口带宽的问题
为什么80%的码农都做不了架构师?>>> HBase 0.92版本之后,RegionServer的Compact过程根据待合并的文件大小分为smallcompaction和la ...
- HBase 手动 flush 机制梳理
对应 HBase 版本0.94.1,对照了开源的版本和工作使用的某发行版 问题:在 HBase shell 里面输入 flush 'table_or_region_name'之后,发生了什么?具体的实 ...
- crontab定时任务自动不能执行,手动可以执行的解决办法-亲测解决
最近在做ETL任务调度时,使用系统自带的任务调度crontab 发现手动运行脚本可以执行完成,但是自动定时就不能实现,检查shell脚本也没有错误.奇怪哪里导致的问题呢? 后来在网上查询和不断测试,得 ...
- hdfs yarn hbase pid文件被删除解决办法:修改hadoop-daemon.sh yarn-daemon.sh hbase-daemon.sh中PID_DIR存储路径
pid内容为各进程的进程号 通过ps -ef | grep a 查询a的pid,精确杀死某进程 [hadoop@hadoop000 sbin]$ cat hadoop-daemon.sh |grep ...
- HBASE从入门到精通
一. HBase技术介绍 HBase简介 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大 ...
- 走向云计算之HBase模式设计及表设计案例
一.概述 HBase有以下几个特点: HBase列的可以动态增加,并且列为空就不存储数据,节省存储空间. hbase自动切分数据,使得数据存储自动具有水平scalability. Hbase可以提供高 ...
- HBase应该知道的
1 摘要 本文是一篇HBase学习综述,将会介绍HBase的特点.对比其他数据存储技术.架构.存储.数据结构.使用.过滤器等. 关于Phoenix on HBase,即Sql化的HBase服务,可以参 ...
- HBASE原理及使用
一.hbase架构简介 Zookeeper:作为分布式的协调.RegionServer也会把自己的信息写到ZooKeeper中. HDFS是Hbase运行的底层文件系统. RegionServer,理 ...
- HBase性能优化方法总结(2):表的设计
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第一部分内容:表的设计相关的优化方法 ...
最新文章
- 基于注解的 IOC 配置
- java makedir用法_Java Files.makeDir方法代码示例
- python not not()
- python中__name__属性的取值_Python脚本的“__name__”属性
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- 计算机约束措施是参考,【计算机应用论文】高校计算机机房管理问题与改进策略(共4460字)...
- 对VOC目标检测数据进行增强
- CentOS Linux防火墙配置及关闭
- Bootstrap+jquery实现页面跳转【小demo】
- JavaScript数据结构与算法——链表详解(上)
- 2020年共享汽车发展趋势研究报告
- 没有找到 AUTOBACKUP
- EMNLP'21 Oral | 拓展你的视野!UCLA提出:地区多样性视觉常识推理
- 【情感分析】华为云细粒度文本情感分析及应用
- Rust : RwLock读写锁
- ghost.py 使用实例
- 包含了6种不同格式的10种不同的Code 39条形码字体样式的工具包Code 39 Font Advantage Package
- 对模型评估中的准确率、精准率和召回率描述与理解
- 单叶双曲面母直线参数的几何意义
- docker安装kafka镜像