本人小菜,如有错误或疏漏之处,请各位大牛批评指正,求共同进步。发表此博文,旨在帮助遇到类似问题的朋友一点小的建议或思路。废话少说,开始吧。。。

      最近,因项目需要。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的办法相关推荐

  1. hbase major compact脚本

    不同版本的hbase,list命令打印出来的东西不同,脚本要根据版本修改的,别傻乎乎的拿去就用,本人已经踩过坑了 注意对于自动balance来说, 只需要关注三个命令: balance_switch ...

  2. HBase解决Region Server Compact过程占用大量网络出口带宽的问题

    为什么80%的码农都做不了架构师?>>>    HBase 0.92版本之后,RegionServer的Compact过程根据待合并的文件大小分为smallcompaction和la ...

  3. HBase 手动 flush 机制梳理

    对应 HBase 版本0.94.1,对照了开源的版本和工作使用的某发行版 问题:在 HBase shell 里面输入 flush 'table_or_region_name'之后,发生了什么?具体的实 ...

  4. crontab定时任务自动不能执行,手动可以执行的解决办法-亲测解决

    最近在做ETL任务调度时,使用系统自带的任务调度crontab 发现手动运行脚本可以执行完成,但是自动定时就不能实现,检查shell脚本也没有错误.奇怪哪里导致的问题呢? 后来在网上查询和不断测试,得 ...

  5. 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 ...

  6. HBASE从入门到精通

    一. HBase技术介绍 HBase简介 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大 ...

  7. 走向云计算之HBase模式设计及表设计案例

    一.概述 HBase有以下几个特点: HBase列的可以动态增加,并且列为空就不存储数据,节省存储空间. hbase自动切分数据,使得数据存储自动具有水平scalability. Hbase可以提供高 ...

  8. HBase应该知道的

    1 摘要 本文是一篇HBase学习综述,将会介绍HBase的特点.对比其他数据存储技术.架构.存储.数据结构.使用.过滤器等. 关于Phoenix on HBase,即Sql化的HBase服务,可以参 ...

  9. HBASE原理及使用

    一.hbase架构简介 Zookeeper:作为分布式的协调.RegionServer也会把自己的信息写到ZooKeeper中. HDFS是Hbase运行的底层文件系统. RegionServer,理 ...

  10. HBase性能优化方法总结(2):表的设计

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第一部分内容:表的设计相关的优化方法 ...

最新文章

  1. 基于注解的 IOC 配置
  2. java makedir用法_Java Files.makeDir方法代码示例
  3. python not not()
  4. python中__name__属性的取值_Python脚本的“__name__”属性
  5. OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
  6. 计算机约束措施是参考,【计算机应用论文】高校计算机机房管理问题与改进策略(共4460字)...
  7. 对VOC目标检测数据进行增强
  8. CentOS Linux防火墙配置及关闭
  9. Bootstrap+jquery实现页面跳转【小demo】
  10. JavaScript数据结构与算法——链表详解(上)
  11. 2020年共享汽车发展趋势研究报告
  12. 没有找到 AUTOBACKUP
  13. EMNLP'21 Oral | 拓展你的视野!UCLA提出:地区多样性视觉常识推理
  14. 【情感分析】华为云细粒度文本情感分析及应用
  15. Rust : RwLock读写锁
  16. ghost.py 使用实例
  17. 包含了6种不同格式的10种不同的Code 39条形码字体样式的工具包Code 39 Font Advantage Package
  18. 对模型评估中的准确率、精准率和召回率描述与理解
  19. 单叶双曲面母直线参数的几何意义
  20. docker安装kafka镜像

热门文章

  1. TSP、MTSP问题遗传算法详细解读及python实现
  2. mysql文章相似度计算_文章相似度计算
  3. JS逆向之网易云音乐
  4. c++ 0x3f 0x3f3f 0x3f3f3f 0x3f3f3f3f的具体值
  5. 3-19JavaScript
  6. vs项目筛选器显示错乱、只显示部分文件
  7. 【Shell】Sed 删除、替换、增加字符串
  8. 同比增长和环比增长的区别
  9. 图扑软件构建源网荷储用体系 打造循环经济2.0版本
  10. 机器人聊天软件c#_用C#开发MSN插件程序(比如聊天机器人)