windows 中搭建Zookeeper的搭建

个人博客 :https://www.siyuan.run
CSDN:https://blog.csdn.net/siyuan
微信小程序:思远Y

下载

在这里插入图片描述

下载地址: https://mirrors.cnnic.cn/apache/zookeeper/

PS:zookeeper 从3.5.5以后的版本带有bin标识的包,否则启动的时候会报错:“ 错误: 找不到或无法加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain ” 。 tar.gz的包里面是只是源码的包无法直接使用, 带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包 。

安装

无需安装,解压到你要存放的目录即可,我存放再D盘。

配置

  1. 修改文件名: 将zoo_simple.cfg文件名修改为zoo.cfg。
  2. 配置日志存放路径
# The number of milliseconds of each tick
#  Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发                   送一个心跳。
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
# Zookeeper 将写数据的日志文件也保存在这个目录里
# 因为后面配置集群,所以再data后面使用目录区分,单机版使用数字0目录
dataDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\data\\0
# Zookeeper 保存日志文件的目录
dataLogDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\log\\0
# the port at which the clients will connect
# 这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
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

单机版

启动

找到bin目录下zkServer.cmd双击打开

在这里插入图片描述

测试

检查启动是否成功,双击打开zkCli.cmd

在这里插入图片描述

PS:如果打开zkServer.cmd闪退可以再zkServer.cmd文件末尾增加pause ,这样就不会闪退了,方便查看报错信息,具体如下:

echo on
call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*
pause
endlocal

集群版

配置

  1. 复制三个zoo.cfg,分别命名zoo1.cfgzoo2.cfgzoo3.cfg

zoo1.cfg

#dataDir=/tmp/zookeeper
# Zookeeper 将写数据的日志文件也保存在这个目录里
dataDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\data\\1
# Zookeeper 保存日志文件的目录
dataLogDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\log\\1
# the port at which the clients will connect
clientPort=2181
#添加集群配置
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

zoo2.cfg

# Zookeeper 将写数据的日志文件也保存在这个目录里
dataDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\data\\2
# Zookeeper 保存日志文件的目录
dataLogDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\log\\2
# the port at which the clients will connect
clientPort=2181
#添加集群配置
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

zoo3.cfg

# Zookeeper 将写数据的日志文件也保存在这个目录里
dataDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\data\\3
# Zookeeper 保存日志文件的目录
dataLogDir=D:\\Install\\zookeeper\\apache-zookeeper-3.5.8-bin\\log\\3
# the port at which the clients will connect
clientPort=2181
#添加集群配置
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
  1. 在data目录下分别创建1、2、3目录

在这里插入图片描述

分别在1、2、3目录中创建myid文件。1目录下的myid存放1;2目录下的myid存放2;3目录下的myid存放3。

在这里插入图片描述

  1. 复制三个zkServer.cmd,分别命名:zkServer-1.cmdzkServer-2.cmdzkServer-3.cmd

zkServer-1.cmdzkServer-2.cmdzkServer-3.cmd配置cfg文件路径,添加一句

set ZOOCFG=..\conf\zoo1.cfg

zkServer-1.cmd

setlocal
call "%~dp0zkEnv.cmd"set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
set ZOOCFG=..\conf\zoo1.cfg
set ZOO_LOG_FILE=zookeeper-%USERNAME%-server-%COMPUTERNAME%.logecho on
call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*endlocal

zkServer-2.cmd

setlocal
call "%~dp0zkEnv.cmd"set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
set ZOOCFG=..\conf\zoo2.cfg
set ZOO_LOG_FILE=zookeeper-%USERNAME%-server-%COMPUTERNAME%.logecho on
call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*endlocal

zkServer-3.cmd

setlocal
call "%~dp0zkEnv.cmd"set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
set ZOOCFG=..\conf\zoo3.cfg
set ZOO_LOG_FILE=zookeeper-%USERNAME%-server-%COMPUTERNAME%.logecho on
call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*endlocal

启动

双击打开zkServer-1.cmdzkServer-2.cmdzkServer-3.cmd,开始启动zkServer-1.cmd时会报错原因是zkServer-2.cmdzkServer-3.cmd还未启动,因此zookeeper之间交互的时候是不通的。等剩下的集群服务器启动以后,就不会出现报错了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vs Code:Remote SSH

Remote SSH 简介 Remote - SSH 扩展允许您使用任何带有 SSH 服务器的远程计算机作为开发环境。由于几乎每个桌面和服务器操作系统都有可配置的 SSH 服务器,因此该扩展可以在各种情况下大大简化开发。 您可以: 在部署的同一操作系统上进行开发&#xff…

样条之贝塞尔(Bezier)

我曾经发过两篇关于贝塞尔的文章:数学图形(1.47)贝塞尔(Bzier)曲线,数学图形之贝塞尔(Bzier)曲面。那是使用我自己定义的脚本语言生成贝塞尔图形。由于我自己定义的脚本语法功能有限,所以最多只能支持5次贝塞尔函数,而这里将实现N…

设计模式 之 工厂模式

项目源码:https://gitee.com/Jacob-gitee/DesignMode 个人博客:https://jacob.org.cn 女娲造人的故事 东汉《风俗通》记录了一则神话故事:“开天辟地,未有人民,女娲搏黄土做人”,讲述的内容就是大家非常熟…

设计模式 之 单例模式

项目源码:https://gitee.com/Jacob-gitee/DesignMode 个人博客:https://jacob.org.cn 宗旨 Ensure a class has only one instance,and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个…

设计模式 之 抽象工厂模式

项目源码:https://gitee.com/Jacob-gitee/DesignMode 个人博客 :https://jacob.org.cn 女娲的失误 工厂模式中讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇…

设计模式 之 模板模式

项目源码:https://gitee.com/Jacob-gitee/DesignMode 个人博客 :http://jacob.org.cn 女娲的失误 工厂模式中讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇…

使用Java高速实现进度条

基于有人问到如何做进度条,以下给个简单的做法: 主要是使用JProgressBar(Swing内置javax.swing.JProgressBar)和SwingWorker(Swing内置javax.swing.SwingWorker) 有人肯定会说,不是用线程做的吗…

关于js的function.来自百度知道的回答,学习了.

在js中,创建一个函数对象的语法是var myFunction new Function(arg1,…,agrN, body);其中,该函数对象的N个参数放在 函数主体参数body的前面,即函数主体参数必须放在参数列表的最后,也可以无参数new Function(body)。你添加第三个…

fedora20开机启动配置:systemctl

老版fedora中使用chkconfig配置开机启动,fedora20中,使用chkconfig会出现各种问题。使用systemctl配置。 具体表格如下 转载于:https://www.cnblogs.com/hh6plus/p/5548083.html

《Java 高并发》01 高并发基本概念

基本概念 同步和异步 同步和异步通常是用来形容一次方法调用。 同步方法调用一旦开始,调用者必须等到方法返回才能继续执行后续操作。 异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操…

Android之Http网络编程(四)

前面几篇博文简单的介绍了一些常见的Http的操作,这些操作几乎都是在新开的线程中进行的网络请求,并在日志中打印出获取到的网络数据。那么,问题来了!(呃~感觉下一句是蓝翔有木有?)如何在把获取到…

mybatis 2 -常用数据操作

1、写入数据并获取自增ID XML配置&#xff1a; <!-- 写入数据获取自增ID --><insert id"insertLog" parameterType"com.mamaguwen.entity.sys_loginlog" useGeneratedKeys"true" keyProperty"logid">insert into sys_…

Docker 搭建 ELK 日志系统,并通过 Kibana 查看日志

Docker 搭建 ELK 日志系统,并通过 Kibana 查看日志 docker-compose.yml version: 3 services:elasticsearch:image: elasticsearch:7.7.0 #镜像container_name: elasticsearch #定义容器名称restart: always #开机启动&#xff0c;失败也会一直重启environment:- "cl…

RabbitMQ Management:Management API returned status code 500

错误显示&#xff1a; 解决方案&#xff1a; 因为是使用docker 容器安装的&#xff0c;所有需要进入容器 docker exec -it rabbitmq /bin/bash进入目录 cd /etc/rabbitmq/conf.d/执行命令 echo management_agent.disable_metrics_collector false > management_agent.dis…

c++ 读取文件 最后一行读取了两次

用ifstream的eof()&#xff0c;竟然读到文件最后了&#xff0c;判断eof还为false。网上查找资料后&#xff0c;终于解决这个问题。 参照文件&#xff1a;http://tuhao.blogbus.com/logs/21306687.html 在使用C/C读文件的时候&#xff0c;一定都使用过eof&#xff08;&#xff0…

java中的io系统详解(转)

Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符&#xff0c;分别操作字符、字符数组或字符串&#xff0c;而字节流处理单元为 1 个字节&#xff0c;操作字节和字节数组。 Java 内用 Unicode 编码存储字符&#xff0c;字符流处理类负责将外部的…

Unity3D Shader入门指南(二)

关于本系列 这是Unity3D Shader入门指南系列的第二篇&#xff0c;本系列面向的对象是新接触Shader开发的Unity3D使用者&#xff0c;因为我本身自己也是Shader初学者&#xff0c;因此可能会存在错误或者疏漏&#xff0c;如果您在Shader开发上有所心得&#xff0c;很欢迎并恳请您…

JVM:如何分析线程堆栈

英文原文&#xff1a;JVM: How to analyze Thread Dump 在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因。在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术。在线程堆栈中存储的信息&#xff0c;通常远超出你的想象&…

SQLSERVER中如何忽略索引提示

SQLSERVER中如何忽略索引提示 原文:SQLSERVER中如何忽略索引提示SQLSERVER中如何忽略索引提示 当我们想让某条查询语句利用某个索引的时候&#xff0c;我们一般会在查询语句里加索引提示&#xff0c;就像这样 SELECT id,name from TB with (index(IX_xttrace_bal)) where bal…

[016]转--C++拷贝构造函数详解

一. 什么是拷贝构造函数 首先对于普通类型的对象来说&#xff0c;它们之间的复制是很简单的&#xff0c;例如&#xff1a; [c-sharp] view plaincopy int a 100; int b a; 而类对象与普通对象不同&#xff0c;类对象内部结构一般较为复杂&#xff0c;存在各种成员变量。下…