【ZooKeeper Notes 25】ZooKeeper运维之使用SnapshotFormatter可视化快照数据-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

【ZooKeeper Notes 25】ZooKeeper运维之使用SnapshotFormatter可视化快照数据

简介:
+关注继续查看

在ZooKeeper的运维过程中,我们经常会碰到这样的问题,就是快照数据文件越来越大,但是ZooKeeper上的数据节点数量并没有相应的增加。

这说明什么问题:一定是有客户端在将ZooKeeper当数据库使用了。长此以往,必然会引起ZooKeeper内存数据过大而影响性能及集群间的数据同步。

那么有没有办法能够排查此类问题呢?解决方法是有的,我们首先需要使用SnapshotFormatter可视化快照数据。

数据快照机制是ZooKeeper用来定时进行内存全量数据dump,每次数据快照都会生成磁盘上的一个snapshot文件,例如:snapshot.300000007。

但是令人沮丧的是,这个文件是二进制格式的,无法看出任何有意义的数据信息。

幸好,ZooKeeper提供给我们一个可视化快照数据的工具:SnapshotFormatter

使用方法如下

java  SnapshotFormatter 快照数据文件

例如我们对上面提到的事务日志对应的快照数据文件进行可视化转换:

java SnapshotFormatter snapshot.300000007

输出内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ZNode Details (count=7):
----
/
  cZxid = 0x00000000000000
  ctime = Thu Jan 01 08:00:00 CST 1970
  mZxid = 0x00000000000000
  mtime = Thu Jan 01 08:00:00 CST 1970
  pZxid = 0x00000300000003
  cversion = 2
  dataVersion = 0
  aclVersion = 0
  ephemeralOwner = 0x00000000000000
  dataLength = 0
----
/test_log
  cZxid = 0x00000300000003
  ctime = Tue Sep 03 07:08:40 CST 2012
  mZxid = 0x00000300000004
  mtime = Tue Sep 03 08:13:54 CST 2012
  pZxid = 0x00000300000006
  cversion = 1
  dataVersion = 1
  aclVersion = 0
  ephemeralOwner = 0x00000000000000
  dataLength = 2
----
……


从上面的输出中,我们就可以看到ZooKeeper上的所有节点信息了,其中会看到有个dataLength属性,这个就是该数据节点的数据大小了。排序就可以排查出异常节点了。



本文转自 nileader 51CTO博客,原文链接:http://blog.51cto.com/nileader/983259,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
远程连接服务器jupyter notebook、浏览器以及深度学习可视化方法
h1 { counter-reset: h2counter; } h2 { counter-reset: h3counter; } h3 { counter-reset: h4counter; } h4 { counter-reset: h5counter; } ...
1845 0
关于Jupyter notebook的安装以及一些使用心得
Jupyter notebook Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
1254 0
IPython、Notebook、qtconsole使用教程
IPython、Notebook、qtconsole使用教程 上一篇为Python,IPython,qtconsole,Notebook,Jupyter快速安装教程 1. 使用IPython 自动补全功能,使用tab键,如输入im后按tab键,可自动补全import。 进入IPython,CMD中输入ipython 退出IPython,CMD中输入quit()
3718 0
Intellij idea使用postgresql 反向生成实例, 'Basic' attribute type should not be 'Object'
mapped type不能Object? 本人使用 intellij idea 15 , postgresql 9.4,在开发java ee 。 在用 Hibernate时, 需要用数据库表反向生成实例,数据库中部分字段,是Int4,在反转的时候会爆出错误,下面是我的测试图,有木有大牛了解,可不可给给点解决方法,【生成后手动一个个修改回来除外】,各种google过……唉,求教....   下拉框中并没有String或Integer 的选项,只有Object和序列化两种。
1129 0
Redis:Bitmaps使用场景和常用命令
Redis:Bitmaps使用场景和常用命令
2221 0
Java基础-11总结Eclipse使用,API,Object类
你需要的是什么,直接评论留言。 获取更多资源加微信公众号“Java帮帮” (是公众号,不是微信好友哦) 还有“Java帮帮”今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:Eclipse的概述使用(掌握) 1:Eclipse的安装 2:用
1537 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载