ZooKeeper下载地址
这里只放上Zookeeper官网地址,上去下载就好了就是一个压缩文件,解压就好了,时代在变化,之后将会使用docker进行操作,如果有对于docker网络有不了解的情况可以去看这篇文章docker网络
**Zookeeper下载地址**之后的操作就是解压同时需要安装JDK环境这个就不做过多赘述了
docker安装ZooKeeper
-
首先获取到一个zoo_sample.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=/tmp/zookeeper # 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 ## Metrics Providers # # https://prometheus.io Metrics Exporter #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider #metricsProvider.httpPort=7000 #metricsProvider.exportJvmInfo=true
-
将他保存为一个叫做zoo.cfg的文件同时修改其中的下饭参数
# the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/tmp/zookeeper
存储快照的目录。不要使用 /tmp 来存储,这里的 /tmp 只是示例。
对于linux来说tmp文件是用来作为临时文件存放的目录,在系统重新启动的是会删除该目录的,but.我们用的是docker具体我没有测试过,有测试过的大佬可以发出来说一下不过我为可以防万一是修改了的
使用Fstp工具导入到您的服务器之后我们开始进行修改文件名字和内容的操作
-
修改文件名字
root@azang405:/azang_data/zookeeper# ls dataDir zoo_sample.cfg root@azang405:/azang_data/zookeeper# mv zoo_sample.cfg zoo.cfg root@azang405:/azang_data/zookeeper# ls dataDir zoo.cfg
-
修改文件内容dataDir的参数,这里只cat了一下结果
其中# docker 默认的存储位置也是这个地方如果改成别的会导致您的的容器一直重启报错原因会是没有权限创建对应文件路径
root@azang405:/azang_data/zookeeper# cat zoo.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=/data # 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 ## Metrics Providers # # https://prometheus.io Metrics Exporter #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider #metricsProvider.httpPort=7000 #metricsProvider.exportJvmInfo=true
-
然后运行docker命令
docker run --name some-zookeeper --restart always -d -v /azang_data/zookeeper/zoo.cfg:/conf/zoo.cfg -v /azang_data/zookeeper/dataDir:/data zookeeper
shell命令日志
# 运行run命令 这里我已经下载了docker镜像了如果是第一次的话可能需要先等待下载 root@azang405:/azang_data/zookeeper# docker run --name some-zookeeper --restart always -d -v /azang_data/zookeeper/zoo.cfg:/conf/zoo.cfg -v /azang_data/zookeeper/dataDir:/data zookeeper 703e807fb4b7534e65bbb023f6b569324e8ead5909d2b560523a1cc16f42ef9b # 查看是否成功运行docker容器 root@azang405:/azang_data/zookeeper/dataDir# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 703e807fb4b7 zookeeper "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp some-zookeeper 232bf28edc80 nginx "/docker-entrypoint.…" 4 days ago Up 3 days 0.0.0.0:80->80/tcp, :::80->80/tcp my_nginx a3525e9b2d1b portainer/portainer "/portainer" 4 days ago Up 3 minutes 9000/tcp portainer # 进入到zookeeper容器中去 root@azang405:/azang_data/zookeeper# docker exec -it some-zookeeper /bin/bash root@703e807fb4b7:/apache-zookeeper-3.7.0-bin#
-
启动zookeeper服务端和客户端
root@703e807fb4b7:/# ls apache-zookeeper-3.7.0-bin conf dev home logs opt run sys var bin data docker-entrypoint.sh lib media proc sbin tmp boot datalog etc lib64 mnt root srv usr root@703e807fb4b7:/# cd apache-zookeeper-3.7.0-bin/ root@703e807fb4b7:/apache-zookeeper-3.7.0-bin# ls LICENSE.txt NOTICE.txt README.md README_packaging.md bin conf docs lib root@703e807fb4b7:/apache-zookeeper-3.7.0-bin# cd bin root@703e807fb4b7:/apache-zookeeper-3.7.0-bin/bin# ls README.txt zkCli.sh zkServer-initialize.sh zkSnapShotToolkit.cmd zkSnapshotComparer.sh zkCleanup.sh zkEnv.cmd zkServer.cmd zkSnapShotToolkit.sh zkTxnLogToolkit.cmd zkCli.cmd zkEnv.sh zkServer.sh zkSnapshotComparer.cmd zkTxnLogToolkit.sh root@703e807fb4b7:/apache-zookeeper-3.7.0-bin/bin# zkS zkServer-initialize.sh zkServer.sh zkSnapShotToolkit.sh zkSnapshotComparer.sh zkServer.cmd zkSnapShotToolkit.cmd zkSnapshotComparer.cmd # 启动ZooKeeper服务端 root@703e807fb4b7:/apache-zookeeper-3.7.0-bin/bin# zkServer.sh start ZooKeeper JMX enabled by default Using config: /conf/zoo.cfg Starting zookeeper ... FAILED TO START root@703e807fb4b7:/apache-zookeeper-3.7.0-bin/bin# ls README.txt zkCli.sh zkServer-initialize.sh zkSnapShotToolkit.cmd zkSnapshotComparer.sh zkCleanup.sh zkEnv.cmd zkServer.cmd zkSnapShotToolkit.sh zkTxnLogToolkit.cmd zkCli.cmd zkEnv.sh zkServer.sh zkSnapshotComparer.cmd zkTxnLogToolkit.sh # 启动Zookeeper客户端 root@703e807fb4b7:/apache-zookeeper-3.7.0-bin/bin# zkCli.sh Connecting to localhost:2181 2021-11-25 14:52:46,233 [myid:] - INFO [main:Environment@98] - Client environment:zookeeper.version=3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC 2021-11-25 14:52:46,246 [myid:] - INFO [main:Environment@98] - Client environment:host.name=703e807fb4b7 2021-11-25 14:52:46,246 [myid:] - INFO [main:Environment@98] - Client environment:java.version=11.0.13 2021-11-25 14:52:46,248 [myid:] - INFO [main:Environment@98] - Client environment:java.vendor=Oracle Corporation 2021-11-25 14:52:46,248 [myid:] - INFO [main:Environment@98] - Client environment:java.home=/usr/local/openjdk-11 2021-11-25 14:52:46,249 [myid:] - INFO [main:Environment@98] - Client environment:java.class.path=/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/target/classes:/apache-zookeeper-3.7.0-bin/bin/../build/classes:/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/target/lib/*.jar:/apache-zookeeper-3.7.0-bin/bin/../build/lib/*.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-prometheus-metrics-3.7.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-jute-3.7.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-3.7.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/snappy-java-1.1.7.7.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/slf4j-log4j12-1.7.30.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/slf4j-api-1.7.30.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_servlet-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_hotspot-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_common-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-native-unix-common-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-native-epoll-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-resolver-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-handler-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-common-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-codec-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-buffer-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/metrics-core-4.1.12.1.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/log4j-1.2.17.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jline-2.14.6.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-util-ajax-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-util-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-servlet-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-server-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-security-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-io-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-http-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-databind-2.10.5.1.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-core-2.10.5.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-annotations-2.10.5.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/commons-cli-1.4.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/audience-annotations-0.12.0.jar:/apache-zookeeper-3.7.0-bin/bin/../zookeeper-*.jar:/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/conf: 2021-11-25 14:52:46,249 [myid:] - INFO [main:Environment@98] - Client environment:java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib 2021-11-25 14:52:46,250 [myid:] - INFO [main:Environment@98] - Client environment:java.io.tmpdir=/tmp 2021-11-25 14:52:46,253 [myid:] - INFO [main:Environment@98] - Client environment:java.compiler=<NA> 2021-11-25 14:52:46,257 [myid:] - INFO [main:Environment@98] - Client environment:os.name=Linux 2021-11-25 14:52:46,257 [myid:] - INFO [main:Environment@98] - Client environment:os.arch=amd64 2021-11-25 14:52:46,258 [myid:] - INFO [main:Environment@98] - Client environment:os.version=5.4.0-83-generic 2021-11-25 14:52:46,258 [myid:] - INFO [main:Environment@98] - Client environment:user.name=root 2021-11-25 14:52:46,258 [myid:] - INFO [main:Environment@98] - Client environment:user.home=/root 2021-11-25 14:52:46,258 [myid:] - INFO [main:Environment@98] - Client environment:user.dir=/apache-zookeeper-3.7.0-bin/bin 2021-11-25 14:52:46,258 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.free=24MB 2021-11-25 14:52:46,259 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.max=256MB 2021-11-25 14:52:46,260 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.total=32MB 2021-11-25 14:52:46,265 [myid:] - INFO [main:ZooKeeper@637] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@7946e1f4 2021-11-25 14:52:46,269 [myid:] - INFO [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation 2021-11-25 14:52:46,273 [myid:] - INFO [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes 2021-11-25 14:52:46,281 [myid:] - INFO [main:ClientCnxn@1726] - zookeeper.request.timeout value is 0. feature enabled=false # 这里你已经连接上了在欢迎你!!!! Welcome to ZooKeeper! 2021-11-25 14:52:46,303 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1171] - Opening socket connection to server localhost/127.0.0.1:2181. 2021-11-25 14:52:46,308 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1173] - SASL config status: Will not attempt to authenticate using SASL (unknown error) JLine support is enabled 2021-11-25 14:52:46,320 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1005] - Socket connection established, initiating session, client: /127.0.0.1:53772, server: localhost/127.0.0.1:2181 2021-11-25 14:52:46,347 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1438] - Session establishment complete on server localhost/127.0.0.1:2181, session id = 0x1001a3c8ec70000, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null # 查看ZooKeeper的节点 [zk: localhost:2181(CONNECTED) 0] ls /# 这里发现有一个节点[zookeeper] # 退出命令quit [zk: localhost:2181(CONNECTED) 1] quit WATCHER:: WatchedEvent state:Closed type:None path:null 2021-11-25 15:00:05,911 [myid:] - INFO [main:ZooKeeper@1232] - Session: 0x1001a3c8ec70000 closed 2021-11-25 15:00:05,912 [myid:] - INFO [main- EventThread:ClientCnxn$EventThread@570] - EventThread shut down for session: 0x1001a3c8ec70000 2021-11-25 15:00:05,913 [myid:] - ERROR [main:ServiceUtils@42] - Exiting JVM with code 0 # 成功退出 root@703e807fb4b7:/apache-zookeeper-3.7.0-bin/bin#
-
其他ZooKeeper文章
ZooKeeper学习笔记(一): ZooKeeper是什么能用来做什么
ZooKeeper学习笔记(二): Zookeeper的安装与启动(Docker)
ZooKeeper学习笔记(三): Zookeeper的五大参数解读
ZooKeeper学习笔记(四): Docker搭建ZooKeeper集群(这里是三个,具体可以修改对应参数)脚本
ZooKeeper学习笔记(五): ZooKeeper集群选举机制
ZooKeeper学习笔记(六): 客户端命令行操作
ZooKeeper学习笔记(七):ZooKeeper依赖-API方法
ZooKeeper学习笔记(八):服务器动态上下线原理