GitHub地址:

https://github.com/apache/zookeeper

最新版本的 zookeeper 已经使用了 maven 进行管理了、不再需要安装 Ant

下载完成之后、使用 Idea 作为一个 maven 项目打开

拷贝配置文件

  • 拷贝zoo_sample.cfg文件至相同文件夹下,名为:zoo.cfg,配置全部使用默认;
  • 创建 /tmp/zookeeper 目录、用于存放 zk 数据.
  • 拷贝log4j.properties文件至:zookeeper-server/src/main/resources,文件名还是log4j.properties不变.
  • resource 标记为 Resources Root

增加启动项

找到类 org.apache.zookeeper.server.quorum.QuorumPeerMain

在参数中加上 conf/zoo.cfg

修改pom文件中scope

scope 注释掉

<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.1.7.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</dependency>

执行server

执行 main 方法前建议执行命令 mvn clean install -DskipTests

2020-05-11 23:51:27,731 [myid:] - INFO  [main:NIOServerCnxnFactory@664] - binding to port 0.0.0.0/0.0.0.0:2181
2020-05-11 23:51:27,751 [myid:] - INFO [main:WatchManagerFactory@42] - Using org.apache.zookeeper.server.watch.WatchManager as watchmanager
2020-05-11 23:51:27,751 [myid:] - INFO [main:WatchManagerFactory@42] - Using org.apache.zookeeper.server.watch.WatchManager as watchmanager
2020-05-11 23:51:27,751 [myid:] - INFO [main:ZKDatabase@132] - zookeeper.snapshotSizeFactor = 0.33
2020-05-11 23:51:27,751 [myid:] - INFO [main:ZKDatabase@152] - zookeeper.commitLogCount=500
2020-05-11 23:51:27,757 [myid:] - INFO [main:SnapStream@61] - zookeeper.snapshot.compression.method = CHECKED
2020-05-11 23:51:27,759 [myid:] - INFO [main:FileSnap@85] - Reading snapshot /tmp/zookeeper/version-2/snapshot.3
2020-05-11 23:51:27,763 [myid:] - INFO [main:DataTree@1730] - The digest in the snapshot has digest version of 2, , with zxid as 0x3, and digest value as 1371985504
2020-05-11 23:51:27,774 [myid:] - INFO [main:FileTxnSnapLog@363] - 1 txns loaded in 5 ms
2020-05-11 23:51:27,774 [myid:] - INFO [main:ZKDatabase@289] - Snapshot loaded in 23 ms, highest zxid is 0x4, digest is 1371985504
2020-05-11 23:51:27,774 [myid:] - INFO [main:FileTxnSnapLog@470] - Snapshotting: 0x4 to /tmp/zookeeper/version-2/snapshot.4
2020-05-11 23:51:27,775 [myid:] - INFO [main:ZooKeeperServer@522] - Snapshot taken in 1 ms
2020-05-11 23:51:27,788 [myid:] - INFO [main:RequestThrottler@75] - zookeeper.request_throttler.shutdownTimeout = 10000
2020-05-11 23:51:27,802 [myid:] - INFO [main:ContainerManager@83] - Using checkIntervalMs=60000 maxPerMinute=10000 maxNeverUsedIntervalMs=0
2020-05-11 23:51:27,803 [myid:] - INFO [main:ZKAuditProvider@42] - ZooKeeper audit is disabled.
2020-05-11 23:51:58,403 [myid:] - INFO [SessionTracker:ZooKeeperServer@603] - Expiring session 0x100016819530000, timeout of 30000ms exceeded
2020-05-11 23:51:58,404 [myid:] - INFO [SessionTracker:ZooKeeperServer@603] - Expiring session 0x10001651fa70000, timeout of 30000ms exceeded
2020-05-11 23:51:58,407 [myid:] - INFO [SyncThread:0:FileTxnLog@284] - Creating new log file: log.5

启动成功

执行client

如 server 一般、配置入口类 org.apache.zookeeper.ZooKeeperMain

将下面的依赖的 scope 注释掉

<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</dependency>

启动

Welcome to ZooKeeper!JLine support is disabled
2020-05-11 23:54:50,732 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1169] - Opening socket connection to server localhost/127.0.0.1:2181.
2020-05-11 23:54:50,732 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1171] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
2020-05-11 23:54:50,748 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1001] - Socket connection established, initiating session, client: /127.0.0.1:59060, server: localhost/127.0.0.1:2181
2020-05-11 23:54:50,769 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1436] - Session establishment complete on server localhost/127.0.0.1:2181, session id = 0x10001a019010000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:nullls /[zookeeper]ls /zookeeper[config, quota]

至此,已成功编译运行 zookeeper的源码

编译运行Zookeeper源码的更多相关文章

  1. 在win10上使用premake工具和vs2017编译运行Box2D源码和Testbed

    1.从github上下载Box2D源码的zip包 2.解压缩zip包 3.从premake网站下载premake5工具,解压后得到premake5.exe 4.将premake5.exe拷贝到Box2 ...

  2. 使用Shell脚本编译运行C++源码 输入输出重定向

    在写C++控制台程序的时,如果使用Xcode或者Visual Studio之类的IDE,需要创建许多工程,会造成很多不便.有时,采用Vim或者Sublime text等编辑器编写简单的控制台程序能节省 ...

  3. Zookeeper源码编译为Eclipse工程(转)

    原文地址:http://blog.csdn.net/jiyiqinlovexx/article/details/41179293 为了深入学习ZooKeeper源码,首先就想到将其导入到Eclispe ...

  4. Zookeeper源码编译为Eclipse工程(win7下Ant编译)

    前言 ZooKeeper是雅虎的.用Ant进行软件构建. 千里之行,始于足下.想看源码的第一步,是下载源码并导入某个IDE工具. Ant http://ant.apache.org/ Windows: ...

  5. 如何编译Zookeeper源码

    1. 安装Ant Ant下载地址:http://ant.apache.org/bindownload.cgi 解压即可. 2. 下载Zookeeper源码包 https://github.com/ap ...

  6. 使用ant编译zookeeper源码

    1. 安装Ant Ant下载地址:http://ant.apache.org/bindownload.cgi 解压即可. 注意如果不配置环境变量的话需要使用绝对路径,我配置了. 开始我ant跑错了 U ...

  7. Zookeeper源码用ant进行编译为eclipse工程--转载

    原文地址:http://www.it165.net/os/html/201411/10142.html Zookeeper GitHub的下载地址是:https://github.com/apache ...

  8. 【ZooKeeper系列】3.ZooKeeper源码环境搭建

    前文阅读: [ZooKeeper系列]1.ZooKeeper单机版.伪集群和集群环境搭建 [ZooKeeper系列]2.用Java实现ZooKeeper API的调用 在系列的前两篇文章中,介绍了Zo ...

  9. zookeeper源码分析之五服务端(集群leader)处理请求流程

    leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...

随机推荐

  1. (Java实现) 昆虫繁殖

    昆虫繁殖 时间限制: 1 Sec 内存限制: 128 MB 提交: 25 解决: 16 [提交][状态][讨论版][命题人:quanxing] 题目描述 科学家在热带森林中发现了一种特殊的昆虫,这种昆 ...

  2. (Java实现) 车站

    题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...

  3. Java实现 LeetCode 212 单词搜索 II(二)

    212. 单词搜索 II 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中&quo ...

  4. Java中抽象类与接口的详细说明

    首先简单的介绍一下抽象类: 定义是很简单的,我们这里不写官方的语言,我自己看着都烦,我们就用白话介绍,抽象类本质是一个类,没问题,那么类里面一般都是有方法的,方法包括方法名和方法体,这是常识对不对,那 ...

  5. Java实现二进制幂

    1 问题描述 使用n的二进制表示,计算a的n次方. 2 解决方案 2.1 从左至右二进制幂 此方法计算a的n次方具体思想,引用<算法设计与分析基础>第三版一段文字介绍: package c ...

  6. java实现矩形区域的交和并

    在编写图形界面软件的时候,经常会遇到处理两个矩形的关系. 如图[1.jpg]所示,矩形的交集指的是:两个矩形重叠区的矩形,当然也可能不存在(参看[2.jpg]).两个矩形的并集指的是:能包含这两个矩形 ...

  7. Java实现 蓝桥杯 历届试题 横向打印二叉树

    问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树时,则把该节点放入那个位置. 比如,10 8 5 7 ...

  8. java实现第五届蓝桥杯猜字母

    猜字母 题目描述 把abcd-s共19个字母组成的序列重复拼接106次,得到长度为2014的串. 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母. 得到的新串再进行删除 ...

  9. 基于ABP做一个简单的系统——实战篇:1.项目准备

    现阶段需要做一个小项目,体量很小,业务功能比较简单,就想到用最熟悉的.net来做,更何况现在.net core已经跨平台,也可以在linux服务器上部署.所以决定用.net core 3.1+mysq ...

  10. 温故知新-多线程-Cache Line存在验证

    文章目录 简述 缓存行Cache Line 验证CacehLine存在? 参考 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持 ...