热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

3.5.8Zookeeper(一)在idea中编译遇到的几个问题和集群启动

下载的是:https:github.comapachezookeepertreebranch-3.5.8导入idea中。出现的第一个问题就是:org.apache.

下载的是: 

 https://github.com/apache/zookeeper/tree/branch-3.5.8

 导入idea中。

出现的第一个问题就是:org.apache.zookeeper.version.Info

 不存在,不存在能怎么呢,直接创建一个呗。

 新建的Info类如下,解决此问题。

package org.apache.zookeeper.version;public interface Info {int MAJOR=3;int MINOR=5;int MICRO=8;String QUALIFIER=null;int REVISION=-1; //@deprecated, please use REVISION_HASHString REVISION_HASH="3453dsdfg";String BUILD_DATE="2022-10-22";
}

    开始执行mvn clean install -DskipTests,又出现第二个错误:

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: E:\sourceCode\zookeeper\zookeeper-branch-3.5.8\zookeeper-server\src\main\resources\git.properties

  看提示说是无法加载这个git.properties文件。去看这个目录下面根本没有这个问题,那就直接创建一个空的文件好了。里面啥也不写。

 问题解决,继续执行 mvn clean install -DskipTests,又遇到了第三个问题:

[INFO] --- exec-maven-plugin:1.6.0:exec (generate-version-info) @ zookeeper ---
Usage: java -cp org.apache.zookeeper.version.util.VerGen maj.min.micro[-qualifier] rev buildDate[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

看着像执行某个插件失败,看提示貌似是参数不合法,全局搜下这个插件,发现在server模块下面的pom.xml中使用了。而且有两个参数报红,没有找到,看着是日期和commitId,无关紧要,直接随便改成字符串 

改了这两个参数 ,clean,install成功了。

 

 启动:

启动server,从bin目录下面的zkServer.sh启动脚本可以看出入口类是 QuorumPeerMain

这个启动类中入参传入了一个配置。这个配置可以是conf下面的zoo_sample.cfg。我这里复制了一份zoo.cfg使用。 把它放入启动参数里面。

启动成功:绑定了一个2181用于客户端连接的端口。 

启动客户端: org.apache.zookeeper.ZooKeeperMain 直接运行这个类中的main函数.

 默认连接上本地的2181端口。或者执行server连接。

 可以在控制台直接查询server的数据:

 集群部署:

ZooKeeper: Because Coordinating Distributed Systems is a Zoo

 参考官网的提示:其中对于 对于2888:3888端口作用的解释为:

前者为集群中各节点通信使用的,比如数据同步。follower和leader之间的通信。后面的端口是用于leader选举投票使用。选举的过程后面记录。

 准备三个zoo1.cfg,zoo2.cfg,zoo3.cfg ,其中zoo1.cfg内容如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=E:/sourceCode/zookeeper/zookeeper-branch-3.5.8/conf/zoo1
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
zookeeper.electionPortBindRetry=10
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

比单机版本修改了dataDir的目录,因为起三个服务都是在一个机器上,要保证这个目录每个实例都不一样,这是zk存储数据的目录。clientPort 也要保证三个服务不相同。最后的三个配置

server.1,server.2,server.3三个实例都是一样的,这是集群中选举,通信的配置。

还有一点需要注意,在每个的dirData的目录下面新建一个文件名为myid的文件,里面填入自己zk实例的id,就是,1,2,3其中的一个。如下:图中的那个version-2是启动之后生成的。 

三个实例启动之后,可以启动客户端验证一下:

默认启动 org.apache.zookeeper.ZooKeeperMain 实例,连接的是2181的server

 在这里设置一个节点:

再启动一个客户端实例,连接2182 server ,这个是我配置在zoo2.cfg中的clientPort。

 数据已经同步了。



推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
我的菜菜呀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有