当前位置: 首页 > news >正文

zookeeper源码(02)源码编译启动及idea导入

本文介绍一下zookeeper-3.9.0源码下载、编译及本地启动。

下载源码

git clone https://gitee.com/apache/zookeeper.gitcd zookeeper
git checkout release-3.9.0
git checkout -b release-3.9.0

源码编译

README_packaging.md文件

该文件介绍了编译zookeeper需要的环境和命令。

编译环境

  • java-1.8.0_102
  • maven-3.3.9

maven编译

mvn clean install -DskipTests

zookeeper-assembly/target/apache-zookeeper-3.9.0-bin.tar.gz 包目录结构:

  • /bin - 可执行文件及脚本
  • /conf - 配置文件
  • /lib - zookeeper包及依赖的包
  • /docs - 文档

构建C客户端

To also build the C client, you need to activate the full-build profile:

mvn clean -Pfull-build
mvn install -Pfull-build -DskipTests

需要在linux平台编译,windows平台会出错。

java命令启动zookeeper

发布包的启动方式在上一篇文章已经介绍,此处介绍一下使用java命令启动zookeeper服务。

zookeeper-server/target目录

进入zookeeper-server/target目录:

$ ll
drwxr-xr-x 1 xuguofeng 197121       0 Aug 16 00:14 lib/
-rw-r--r-- 1 xuguofeng 197121 1359096 Aug 16 00:14 zookeeper-3.9.0.jar
  • lib - 依赖jar
  • zookeeper-3.9.0.jar - 包含了zookeeper的类

创建zoo.cfg配置文件

在zookeeper-server/target下创建conf目录,创建zoo.cfg配置文件:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=data
clientPort=2181

创建logs目录

启动zookeeper服务

java \
-Dzookeeper.datadir.autocreate=true \
-Dzookeeper.log.dir=./logs \
-Dzookeeper.log.file=zookeeper.log \
-XX:+HeapDumpOnOutOfMemoryError \
-Xmx1000m -Xms1000m \
-cp zookeeper-3.9.0.jar;./lib/*;./conf \
org.apache.zookeeper.server.quorum.QuorumPeerMain ./conf/zoo.cfg

如果是linux平台,则使用如下命令:

nohup java \
-Dzookeeper.datadir.autocreate=true \
-Dzookeeper.log.dir=./logs \
-Dzookeeper.log.file=zookeeper.log \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:OnOutOfMemoryError='kill -9 %p' \
-Xmx1000m -Xms1000m \
-Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:./lib \
-cp ./conf:zookeeper-3.9.0.jar \
org.apache.zookeeper.server.quorum.QuorumPeerMain ./conf/zoo.cfg > ./logs/zookeeper.out 2>&1 < /dev/null &

启动zookeeper客户端

java \
-Dzookeeper.datadir.autocreate=true \
-Dzookeeper.log.dir=./logs \
-Dzookeeper.log.file=zookeeper.log \
-Dzookeeper.log.threshold=INFO \
-Xmx256m -Xms256m \
-cp zookeeper-3.9.0.jar;./lib/*;./conf \
org.apache.zookeeper.ZooKeeperMain

在idea中启动

参数配置

在这里插入图片描述

配置说明

在工作目录下创建tmp/conf目录:

  • 把conf/logback.xml拷贝到tmp/conf目录下

  • 在tmp/conf目录下创建zoo.cfg配置文件

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=./tmp/data
    clientPort=2181
    

VM Option:

-Dzookeeper.datadir.autocreate=true -Dzookeeper.log.dir=./tmp/logs -Dzookeeper.log.file=zookeeper.log -Xmx1000m -Xms1000m

Program Arguments:

./tmp/conf/zoo.cfg

把./tmp/conf目录添加到classpath中。

类找不到问题

如果直接启动,可能出现类找不到的问题,在pom.xml中找到对应的依赖,将provided注释掉即可。

http://www.lryc.cn/news/205794.html

相关文章:

  • Github 2FA绑定中国+86手机号码实现两步验证
  • windows安装mysql-8.0.35
  • 最详细STM32,cubeMX串口发送,接收数据
  • Kafka入门04——原理分析
  • k8s-----17、集群安全机制
  • 蓝桥算法赛(铺地板)
  • 浅谈AcrelEMS-GYM文体建筑能效管理解决方案-安科瑞 蒋静
  • 在LayerUI中使用onChange事件监听复选框的值变化
  • 决策树--ID3算法
  • js延时加载有哪些方式
  • VSCode运行python提示No module name ‘xxx‘
  • 【网安大模型专题10.19】※论文5:ChatGPT+漏洞定位+补丁生成+补丁验证+APR方法+ChatRepair+不同修复场景+修复效果(韦恩图展示)
  • C盘满了怎么清理文件?
  • pytest方法间变量值传递--request夹具
  • Linux 内核定时器(高级字符设备五)
  • 「快学Docker」Docker镜像和容器的创建与管理
  • Zabbix出现 404Not FoundThe requested URL /zabbix was not found on this server.
  • 【STM32】标准库的引入
  • Redis的淘汰策略
  • Linux友人帐之日志与备份
  • git中如何在父仓库提交子仓库的修改
  • 【【萌新的SOC学习之SD卡DMA回路读写大数据的实验】】
  • 在k8s中 ,数据包是怎么从外部流转进入到pod的?
  • 微信小程序设置 wx.showModal 提示框中 确定和取消按钮的颜色
  • 【Chrome】使用k8s、docker部署无头浏览器Headless,Java调用示例
  • springmvc http请求,支持get,post,附件传输和参数传输
  • linux性能分析(七)CPU性能篇(二)怎么理解平均负载
  • PostgreSQL12中浮点数输出算法优化带来的小问题
  • Hive安装配置笔记
  • 前端数据可视化之【Echarts下载使用】