一: 准备工作
1.下载Ant并安装
由于Zookeeper是由Ant编译,需下载Ant并安装配置 下载地址:https://ant.apache.org/bindownload.cgi
2.安装Ant:
解压压缩包
配置环境变量:
ANT_HOME D:\devople\apache-ant-1.10.6
Path %ANT_HOME%\bin
输入ant -version验证:
至此Ant安装成功。
3.下载Zookeeper源码
下载地址: https://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.运行:
problem 1:
Error:(21, 61) java: 找不到符号 符号: 类 Info 位置: 程序包 org.apache.zookeeper.version
解决方法:直接新建Info接口
public interface Info {
int MAJOR=1;
int MINOR=0;
int MICRO=0;
String QUALIFIER=null;
int REVISION=-1; //TODO: remove as related to SVN VCS
String REVISION_HASH="1";
String BUILD_DATE="2019-3-4";
}
Info接口建完之后继续执行:
problem 2:
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
再次运行:
成功启动,并输出日志。