s
http://zookeeper.apache.org/
Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly reliable distributed coordination.
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。
tcpwa.exe
msvcr100d.dll 该文件放入C:\Windows\System32\和C:\Windows\SysWOW64\目录下
向10.37.20.68机器2181端口发起连接请求1万,并且占据不释放连接的小工具。可用于测试zookeeper在海量连接情况的下,处理能力。
DOS使用tcpwa.exe方法如下:
C:\Users\Lindows>C:\Users\Lindows\Desktop\tcpwa.exe 10.37.20.68:2181 10000
文件下载地址:
http://dl.iteye.com/topics/download/9121bcd1-a270-3123-90b0-8abd3187cd96
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等),用 Java 实现它们并给出示例代码。
分布式设计与开发(三)------高一致性服务ZooKeeper
http://blog.csdn.net/cutesource/article/details/5822459
【ZooKeeper Notes 2】ZooKeeper快速搭建
http://nileader.blog.51cto.com/1381108/795230
http://dl.iteye.com/topics/download/958ec88c-08fc-3565-b8ed-8963d61f1e2c
【ZooKeeper Notes 10】ZooKeepr监控
http://nileader.blog.51cto.com/1381108/1032164
https://cloud.github.com/downloads/nileader/ZooKeeper-Notes/%E3%80%90ZooKeeper%20Notes%2010%E3%80%91ZooKeeper%E7%9B%91%E6%8E%A7.pdf
【ZooKeeper Notes 4】可视化zookeeper的事务日志
http://nileader.blog.51cto.com/1381108/926753
前面提到,在zookeeper server的配置文件zoo.cfg中可以通过dataLogDir来配置zookeeper的事务日志的输出目录,这个事务日志类似于下面这样的文件:
- ZooKeeper Transactional Log File with dbid 0 txnlog format version 2
- 7/17/12 11:58:04 AM CST session 0x13893084e900000 cxid 0x0 zxid 0x48 createSession 30000
- 7/17/12 12:00:57 PM CST session 0x13893084e900001 cxid 0x0 zxid 0x49 createSession 30000
- 7/17/12 12:01:24 PM CST session 0x13893084e900000 cxid 0x0 zxid 0x4a closeSession null
- 7/17/12 12:01:55 PM CST session 0x13893084e900001 cxid 0xc zxid 0x4b create '/test-abc,#61,v{s{31,s{'world,'anyone}}},F,3
- 7/17/12 12:02:21 PM CST session 0x13893084e900001 cxid 0x12 zxid 0x4c setData '/test-abc,#61,1
- 7/17/12 12:03:15 PM CST session 0x13893084e900001 cxid 0x14 zxid 0x4d create '/test-abc/abc,#61,v{s{31,s{'world,'anyone}}},F,1
- 7/17/12 12:03:17 PM CST session 0x13893084e900001 cxid 0x15 zxid 0x4e setData '/test-abc,#61,2
- EOF reached after 7 txns.
【ZooKeeper Notes 2】ZooKeeper快速搭建
http://nileader.blog.51cto.com/1381108/795230
mv /home/admin/taokeeper/zookeeper-3.4.3/conf/zoo_sample.cfg zoo.cfg
dataDir=/home/admin/taokeeper/zookeeper-3.4.3/data
-
mkdir /home/admin/taokeeper/zookeeper-3.4.3/data
/home/admin/taokeeper/zookeeper-3.4.3/bin/zkServer.sh start
/home/admin/taokeeper/zookeeper-3.4.3/bin/zkCli.sh 或 echo stat|nc localhost 2181
mv /home/admin/taokeeper/zookeeper-3.4.3/conf/zoo_sample.cfg zoo.cfg
dataDir=/home/admin/taokeeper/zookeeper-3.4.3/data server.1=1.2.3.4:2888:3888 server.2=1.2.3.5:2888:3888 server.3=1.2.3.6:2888:3888
-
mkdir /home/admin/taokeeper/zookeeper-3.4.3/data
/home/admin/taokeeper/zookeeper-3.4.3/bin/zkServer.sh start
/home/admin/taokeeper/zookeeper-3.4.3/bin/zkCli.sh 或 echo stat|nc localhost 2181
经压测:zookeeper 的队列深度超过10万时,ZK系统不稳定,风控业务系统性能TPS逐渐下降,平均处理响应时间逐渐上涨,渣队列服务,已告知开发准备弃用该组件。
IBM WAS MQ 7 队列 20k数据传输时,队列深度约为4000左右。
WebSphere MQ Linux v7.1 Performance Evaluations Version 1.2
http://dl.iteye.com/topics/download/9e5e0f9e-e2a8-3d76-a946-0d1fbada29a6
团队博客:http://rdc.taobao.com/team/jm/archives/tag/zookeeper
《ZooKeeper快速搭建》http://nileader.blog.51cto.com/1381108/795230
《ZooKeeper Java API 使用样例》http://nileader.blog.51cto.com/1381108/795265
《可视化zookeeper的事务日志》http://nileader.blog.51cto.com/1381108/926753
《单机启动多个zk实例注意点》http://nileader.blog.51cto.com/1381108/928645
《客户端对zookeeper的操作是不可回退的》http://nileader.blog.51cto.com/1381108/929588
《使用super身份对有权限的节点进行操作》http://nileader.blog.51cto.com/1381108/930635
《ZooKeeper 权限控制》http://nileader.blog.51cto.com/1381108/795525
《ZooKeepr日志清理》http://nileader.blog.51cto.com/1381108/932156
《ZooKeeper客户端地址列表的随机原理》http://nileader.blog.51cto.com/1381108/932948
《ZooKeeper 会话超时》http://nileader.blog.51cto.com/1381108/938106
《数据模型》http://nileader.blog.51cto.com/1381108/946788
《Watcher使用的注意事项》http://nileader.blog.51cto.com/1381108/955515
《避免羊群效应(Herd Effect)》http://nileader.blog.51cto.com/1381108/961809
《ZooKeepr监控》http://nileader.blog.51cto.com/1381108/1032164
《ZooKeeper运维之使用SnapshotFormatter可视化快照数据》http://nileader.blog.51cto.com/1381108/983259
《修复“ZooKeeper客户端打印当前连接的服务器地址为null”的Bug》http://nileader.blog.51cto.com/1381108/1049470
《ZooKeeper管理员指南——部署与管理ZooKeeper》http://nileader.blog.51cto.com/1381108/1032157
《ZooKeeper典型应用场景一览》http://nileader.blog.51cto.com/1381108/1040007
《ZooKeeper与Diamond有什么不一样》http://nileader.blog.51cto.com/1381108/1046316
《ZooKeeper客户端事件串行化处理》http://nileader.blog.51cto.com/1381108/973910
Storm Worker网络连接泄漏 / 当Zookeeper 连接大于1万时,ZK会怎么样?
http://woodding2008.iteye.com/blog/2304453
2016-06-11 21:40:22 b.s.d.nimbus [INFO] Executor dataRealYkvvcount-214-1464683013:[544 544] not alive 2016-06-11 21:40:22 b.s.s.EvenScheduler [INFO] Available slots: (["8033393c-e639-41a5-a565-066e6bd1748b" 5723]
storm任务worker频繁发生executor not alive,worker & supervisor日志中没有发现其他错误信息。
观察网络连接数发现比较高9k+,猜测连接不够用了。
将net.ipv4.tcp_max_tw_buckets值从10000调整至200000,操作日志不再出现。
解决zookeeper磁盘IO高的问题
http://woodding2008.iteye.com/blog/2327100
为什么zookeeper会导致磁盘IO高
由于早期的storm版本心跳信息严重依赖zookeeper,心跳风暴会导致zookeeper的事务日志频繁的写磁盘,带来的问题首当其冲的是磁盘IO会爆掉。
优化思路
将zookeeper事务的日志放入内存中,降低对磁盘的依赖,受内存空间容量限制,需要控制事务日志大小。
这个方案的风险就是一旦机房断电会导致zookeeper中的部分数据丢失,所以特别重要的数据不建议这样做,SSD会是个不错的选择。
方案步骤
- 事务日志指向内存文件系统dataLogDir=/dev/shm
- 关闭自动事务日志的管理#autopurge.purgeInterval=1
- 启用脚本删除历史事务日志以便控制内存的使用
清理事务日志
- #!/bin/bash
- source /etc/profile
- #snapshot file dir
- dataDir=/opt/zookeeperdata/version-2
- #tran log dir
- dataLogDir=/dev/shm/version-2
- #leave transaction files
- leaveTran=10
- #leave snapshot files
- leaveSnap=10000
- echo ""
- echo ""
- echo "before purge memory:"
- free -m
- ls -t $dataLogDir/log.* | tail -n +$leaveTran | xargs rm -f
- ls -t $dataDir/snapshot.* | tail -n +$leaveSnap | xargs rm -f
- echo "after purge memory:"
- free -m
zookeeper配置
- dataDir=/opt/zookeeperdata
- dataLogDir=/dev/shm
- #自动清理时保存在datadir里的数据快照数。最小值3
- #autopurge.snapRetainCount=3
- #自动清理任务的间隔小时数
- #autopurge.purgeInterval=1
- # 每当10000条事务日志写入时,创建snapshot文件
- snapCount=10000
磁盘IO低至可以忽略 iostat -x 1000
ZooKeeper测试
http://woodding2008.iteye.com/blog/2309777
测试环境
测试版本
- java version "1.7.0_10" 64位
- zookeeper 3.4.5 xmx2G
zookeeper Server 3台
192.168.100.53 服务端口2181
192.168.100.54 服务端口2181
192.168.100.55 服务端口2181
64G内存,12核
功能测试
事件消费者
192.168.100.53
192.168.100.54
192.168.100.55
操作:监听到注册节点的事件做相应的操作。
事件生产者
192.168.100.53
操作:增加节点、删除节点、修改节点数据
测试Case:
- 通过zkServer.sh status命令查看zookeeper角色,停掉leader,zookeeper是可以正常工作,并且重新选举出一个leader。
- 通过zkServer.sh status命令查看zookeeper角色,停掉follower,zookeeper是可以正常工作。
- 停掉任意两台zookeeper Server,zookeeper不能正常工作。
- 最后一台监控zookeeper Server运行状态。zkServer.sh status
- 集群B长时间做增加节点、修改节点数据、删除节点操作,集群A能正常监听到B集群事件。
- 开始: 2013-04-03 20:00:00 结束: 2013-04-07 10:00:00 每次事件间隔:100ms 总事件次数:2932992
- 集群A中任意一台重新启动,重新注册到zookeeper集群,并能获取到,集群B最新节点信息。
性能测试
测试一
3个进程,一个进程开1个连接,50个线程,节点没有订阅
一个进程在一个zk节点下,先create EPHEMERAL node,再delete,create和delete各计一次更新。
DataSize(字节) | totalReq(万次) | totalTime(秒) | SuccReq(万次) | FailReq(万次) | avgSuccTPS(次/秒) | avgFailTPS(次/秒) |
255 | 600 | 1380 | 600 | 0 | 4346 | 0 |
510 | 600 | 1509 | 600 | 0 | 3976 | 0 |
1020 | 600 | 1536 | 600 | 0 | 3906 | 0 |
测试二
一个zk node下3个sub连接,1个pub
一个进程操作33个zk node,执行创建一个EPHEMERAL node,不删除
一共开启3个进程
DataSize(字节) | totalReq(万次) | totalTime(秒) | SuccReq(万次) | FailReq(万次) | avgSuccTPS(次/秒) | avgFailTPS(次/秒) |
255 | 19.8 | 83 | 19.8 | 0 | 2385 | 0 |
510 | 19.8 | 83 | 19.8 | 0 | 2385 | 0 |
1020 | 19.8 | 86 | 19.8 | 0 | 2302 | 0 |
end
相关推荐
这个只是其中一个版本的包,详细的可以在http://maven.outofmemory.cn/org.apache.zookeeper/zookeeper/里面找到更多的
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、...
apache-zookeeper-3.7.1-bin.tar.gz 内容概要:通过带着读者手写简化版Spring框架,了解Spring核心原理。在手写Spring源码的过程中会摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC, AOP、 Bean...
在 ZooKeeper 的 Java API 中,开发人员可以使用 Executor 类来维护与服务器端的连接,DataMonitor 类来监视 Znode 节点的数据。Executor 类包括 ZooKeeper 对象和 DataMonitor 对象,负责维护 ZooKeeper 连接,监视...
可以从 Apache 官方网站下载,下载地址为:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz 2. 上传安装包并解压 将下载的安装包上传到 `/usr/local` 路径,...
zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; ...
"dubbo/zookeeper/springMVC demo"就是一个这样的示例,它演示了如何将阿里巴巴的Dubbo服务框架、Apache ZooKeeper注册中心以及Spring MVC web框架整合在一起,以实现微服务架构中的服务发现和服务调用。 首先,...
1. **Java环境**:Zookeeper依赖Java运行环境,因此需要先安装JDK,并设置好`JAVA_HOME`环境变量。 2. **解压安装包**:使用`unzip apache-zookeeper-3.6.3.zip`命令将压缩包解压到一个合适的目录,如`/opt`或`/usr/...
- `src/main/java/org/apache/zookeeper/server/persistence`:数据持久化的实现,如快照和事务日志。 深入研究这些模块,可以让你对ZooKeeper的工作机制有更全面的理解,从而更好地利用它在大数据、分布式计算等...
ln -s /path/to/apache-zookeeper-3.6.0-bin /usr/local/zookeeper ``` 并在`~/.bashrc`或`~/.bash_profile`中添加Zookeeper的PATH: ``` export PATH=$PATH:/usr/local/zookeeper/bin source ~/.bashrc ``` ...
apache-zookeeper分布式框架,压缩包内容:(apache-zookeeper-3.7.1-bin.tar.gz、apache-zookeeper-3.7.1.tar.gz、apache-zookeeper-3.6.4-bin.tar.gz、apache-zookeeper-3.6.4.tar.gz、apache-zookeeper-3.5.10-...
apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper...
### Apache ZooKeeper Essentials #### 一、概述 《Apache ZooKeeper Essentials》是一本关于Apache ZooKeeper的实用指南,由Saurav Haloi编写。本书旨在为读者提供一个快速且全面的指南,帮助读者掌握如何使用...
sudo cp /opt/apache-zookeeper-3.8.1-bin/conf/zoo_sample.cfg /opt/apache-zookeeper-3.8.1-bin/conf/zoo.cfg sudo nano /opt/apache-zookeeper-3.8.1-bin/conf/zoo.cfg ``` 在 `zoo.cfg` 文件中,找到 `dataDir=...
wget http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz ``` 2. **创建服务器目录**:创建5个服务器目录。 ```bash mkdir -pv /zookeeper/server001 mkdir -pv /...
Java中的ZooKeeper是一个分布式协调服务,由Apache Hadoop项目开发,主要用于解决大规模分布式系统中的命名服务、配置管理、集群同步等问题。它提供了一种基于分布式数据一致性模型的树状数据结构,使得多个应用程序...
《Apache ZooKeeper Essentials》是Packt Publishing出版的一本关于Apache ZooKeeper的重要指南,旨在帮助读者深入理解并掌握这个分布式协调服务的关键概念和技术。ZooKeeper作为一个开源项目,被广泛应用于大数据、...