ZooKeeper学习笔记(二): Zookeeper的安装与启动(Docker)

ZooKeeper下载地址

这里只放上Zookeeper官网地址,上去下载就好了就是一个压缩文件,解压就好了,时代在变化,之后将会使用docker进行操作,如果有对于docker网络有不了解的情况可以去看这篇文章docker网络

**Zookeeper下载地址**之后的操作就是解压同时需要安装JDK环境这个就不做过多赘述了

docker安装ZooKeeper

  1. 首先获取到一个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
    
  2. 将他保存为一个叫做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学习笔记(八):服务器动态上下线原理

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社畜阿藏405

挣点钱不丢人吧?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值