H__D  

环境准备

  • Maven:3.6.3
  • Jdk:1.8.0_181
  • idea:2021.1.1 Community Edition(社区版)

1、下载ZooKeeper源码

  官网地址:https://github.com/apache/zookeeper

  选择需要的版本下载。

  本例下载的是 release-3.6.0 版本,下载完后解压。

  

2、使用Idea打开项目,进行编译

  • 导入Idea:File --> Open --> 选择ZooKeeper项目目录 zookeeper-3.6.0

        

  • 编译命令:mvn clean package -Dmaven.test.skip=true

  

可能出现的错误

  问题1[ERROR] Failed to execute goal org.codehaus.mojo:properties-maven-plugin:1.0.0:read-project-properties (default) on project zookeeper: Properties could not be loaded from File: /Users/h__d/Documents/git-repository/zookeeper-3.6.0/zookeeper-server/src/main/resources/git.properties -> [Help 1]

    分析:缺少了 zookeeper-3.6.0/zookeeper-server/src/main/resources/git.properties 文件,而properties-maven-plugin需要使用此文件

    解决:添加 git.properties 文件,内容如下,最好不要注释插件,否则还会有问题

# git提交id(编一个,或使用github上的id)
git.commit.id=9758d25
# 构建时间
build.time=2021-05-26

3、运行ZooKeeper服务端

  1)添加配置文件,复制conf/zoo_sample.cfg,重命名文zoo.cfg

    

  2)配置日志配置文件:将conf/log4j.properties 复制到 zookeeper-server/src/main/resources 下面

    且在zookeeper-server下src/main/resource上,鼠标右键,Mark Directory as -> Root Resources

    

  3)找到服务端启动类

    分析 bin/zkServer.sh 启动脚本 -> 找到 start 启动参数对应的逻辑 -> 找到主启动类参数:ZOOMAIN -> ZOOMAIN的值:org.apache.zookeeper.server.quorum.QuorumPeerMain

    

    找到 ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain",QuorumPeerMain即为服务端主启动类

    ZOOCFG="$2" 可知是通过外部传参进来的

  4)运行QuorumPeerMain服务端主启动类,且进行运行配置

        

可能出现的错误

  问题1Exception in thread "main" java.lang.NoClassDefFoundError: com/codahale/metrics/Reservoir

      at org.apache.zookeeper.metrics.impl.DefaultMetricsProvider$DefaultMetricsContext.lambda$getSummary$2(DefaultMetricsProvider.java:126)

    分析:因为有些类引入是provided,把(zookeeper-3.6.0/zookeeper-server/pom.xml)相关的provided去掉就行了。这里jline除外

    解决:把zookeeper-server/pom.xml中的  <scope>provided</scope> 去掉

4、运行ZooKeeper客户端

  1)找到客户端启动类

    分析 bin/zkCli.sh 客户端启动脚本 -> 代码很少,看到 Java类:org.apache.zookeeper.ZooKeeperMain

     

   2)运行 ZooKeeperMain 客户端启动类,且进行运行配置

    

  3)运行效果

    

 

 

posted on 2021-05-26 19:40  H__D  阅读(1387)  评论(0编辑  收藏  举报