博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用脚本的方式来批量统计hbase表的记录数和字节数
阅读量:7048 次
发布时间:2019-06-28

本文共 807 字,大约阅读时间需要 2 分钟。

hot3.png

最近由于运维工作需要要对系统中的所有hbase表进行一次统计记录数和占用空间大小,如果不借助脚本的话,统计记录数可以在hbase shell中用count命令,而统计表占用的空间大小可以使用hadoop fs –du –s /hbase/data/default/tablename来统计该表所战胜的空间大小,但这样做需要人工干预,统计空间大小还好很快,但count记录数的快慢与表的大小有关,有些表可能需要几个小时来count。

后来发现hbase shell可以批量的执行文件中的命令,就是说他可以在一个文件中定义好所有需要执行的hbase命令,如定义一个文件,文件名为batch.txt:

count ‘table1’

count ‘table2’

….

这后就可以使用hbase shell batch.txt来批量执行这个文件中的命令。

但由于hbase shell执行每条命令时会打印一些不相关的信息,这样就需要对执行结果再进行解析从中提取出每张表的记录数,而且hbase shell的count命令是在客户端来统计的,它相当于执行一个针对表的scan,然后对scan的结果result进行轮循的方式来统计,这样等于串行的去访问每个region server结果是非常慢。

最后通过查看hbase脚本的代码发现,实际上hbase是通过jruby来实现的,而jruby是可以与java互动的,最后我们写了一个jruby脚本调用hbase client的api,而我们的每张表中都增加了一个对hbase统计记录数进行统计的协处理器,这样对记录进行count就可以走这个协处理器(这个协处理器是通过并行的方式来统计表的记录数的),也比较快。具体的jruby脚本如下(由于工作环境不能拷贝粘贴代码,只能截图了):

161042_kZkW_914897.png

 

转载于:https://my.oschina.net/u/914897/blog/1588558

你可能感兴趣的文章
鼓浪屿
查看>>
alloc_skb申请函数分析
查看>>
WPF PRISM开发入门二(Unity依赖注入容器使用)
查看>>
使用 data-* 属性来嵌入自定义数据:
查看>>
炒股的常见技术指标
查看>>
工控随笔_07_西门子_WinCC利用命令行实现操作log日志
查看>>
解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents ........
查看>>
HUST 1017 Exact cover
查看>>
SessionStateStoreProviderBase.GetItemExclusive Method
查看>>
Excel Wrapper
查看>>
Thread和Service应用场合的区别
查看>>
poj 2632 模拟题
查看>>
递归--木棍问题
查看>>
企业门户(Portal)项目实施方略与开发指南
查看>>
基于百度定位SDK的定位服务的实现
查看>>
是你的,就是你的。越是紧握,越容易失去。
查看>>
[LeetCode] Implement Stack using Queues
查看>>
cherrypy安装使用,配置python环境变量
查看>>
MVC验证12-使用DataAnnotationsExtensions对整型、邮件、最小值、文件类型、Url地址等验证...
查看>>
Source not found
查看>>