一、 准备工作
1.下载Ant并安装
由于Zookeeper是由Ant编译,需下载Ant并安装配置 下载地址:https://ant.apache.org/bindownload.cgi
2.安装Ant:
解压:
配置环境变量:
Path D:\devople\apache-ant-1.10.6\bin
输入ant -version验证:
出现Unable to locate tools.jar. Expected to find it in xxx 是由于本地JAVA_HOME未配置,配置完JAVA_HOME就可以了。
再次验证:
至此Ant安装成功。
3.下载Zookeeper源码
下载地址: https://github.com/apache/zookeeperhttps://github.com/apache/zookeeper
由于地址连接是最新版本的Zookeeper源码,本次选用的是Zookeeper 3.4.11版本。
下载zip文件。
解压:
二、编译Zookeeper源码
ant eclipse 编译
编译出错:
下载ant-eclipse-1.0.bin.tar.bz2失败
解决办法:
将bulild.xml中的
get src="http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
替换成如下地址
get src="http://ufpr.dl.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
再次编译,编译成功:
三、导入Zookeeper源码到IDEA
由于使用ant eclipse编译的是Eclipse工程的项目,本次需要导入IDEA中。
选择导入Eclipse项目。一路Next应该没问题。(选择jdk1.8)
四、运行Zookeeper
1.将conf目录下的zoo_sample.cfg复制为zoo.cfg
2.配置zoo.cfg
设置dataDir 和 dataLogDir两个值。其他的值可默认。(本地运行,不是集群模式)
3.找到运行主类 org.apache.zookeeper.server.ZooKeeperServerMain
4.新建Run Configurations,将zoo.cfg全路径导入Program arguments中
5.运行:
问题:日志无法输出。
log4j:WARN No appenders could be found for logger (org.apache.log4j.jmx.HierarchyDynamicMBean).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
解决办法:将log4j.properties的全路径名作为value拷贝到Run Configurations中
-Dlog4j.configuration=file:D:/learnspace/idea/learnning_code/zookeeper-release-3.4.11/conf/log4j.properties
再次运行 org.apache.zookeeper.server.ZooKeeperServerMain:
成功启动,并输出日志。
但是:可能会遇到如下问题:
Error:(21, 61) java: 找不到符号
符号: 类 Info
位置: 程序包 org.apache.zookeeper.version
五、解决【找不到符号Info】
解决方法:在org.apache.zookeeper.version.util包里有个VerGen.java文件,运行这个文件来生成Info.Java,我理解这个是用来在Zookeeper每次发布版本的时候用来固定生成版本号和日期的。在VerGen.Java的main方法上有提示
这里需要把 org.apache.zookeeper.version.util.VerGen.java 的main方法上添加三个运行参数,args[] ,并且把自动编译删除,要不然运行main方法时,整个项目都会编译。
然后再手动编译VerGen.java
运行VerGen.java main方法
会生成Info.java
然后把Info.java 拖到 org.apache.zookeeper.version 包下就OK了
之后重新编译并运行 org.apache.zookeeper.server.ZooKeeperServerMain
成功启动,并输出日志。
————————————————
版权声明:本文为CSDN博主「__Simon'」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/simon_09010817/java/article/details/91843048
来源:oschina
链接:https://my.oschina.net/anxiaole/blog/3212702