ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker(十一): 安装zookeeper

2022-07-03 17:00:23  阅读:210  来源: 互联网

标签:十一 cfg zookeeper zoo zoo1 QuorumPeerConfig org Docker


docker-compose安装zookeeper

编写docker-compose.yml文件

version: '3.1'

services:
  zoo1:
    container_name: zoo1
    image: zookeeper
    hostname: zoo1
    ports:
      - 2181:2181
    networks:
      - zookeeper-network
    volumes:
        - /mydata/zookeeper/zoo1/data:/data
        - /mydata/zookeeper/zoo1/conf/zoo.cfg:/conf/zoo.cfg
        - /mydata/zookeeper/zoo1/logs:/datalog
    restart: always
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    container_name: zoo2
    image: zookeeper
    hostname: zoo2
    ports:
      - 2182:2181
    networks:
      - zookeeper-network
    volumes:
      - /mydata/zookeeper/zoo2/data:/data
      - /mydata/zookeeper/zoo2/conf/zoo.cfg:/conf/zoo.cfg
      - /mydata/zookeeper/zoo2/logs:/datalog
    restart: always
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    container_name: zoo3
    image: zookeeper
    hostname: zoo3
    ports:
      - 2183:2181
    networks:
      - zookeeper-network
    volumes:
      - /mydata/zookeeper/zoo3/data:/data
      - /mydata/zookeeper/zoo3/conf/zoo.cfg:/conf/zoo.cfg
      - /mydata/zookeeper/zoo3/logs:/datalog
    restart: always
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

networks:
  zookeeper-network:
    driver: bridge

注意: 此时zookeeper集群是启动不起来的,查看日志/docker-entrypoint.sh: line 43: /conf/zoo.cfg: Is a directory

解决容器启动失败

在挂载文件夹/mydata/zookeeper/zoo{}/conf创建zoo.cfg文件, 赋权755

cd /mydata/zookeeper/zoo1/conf
rm -rf zoo.cfg/
touch zoo.cfg
chmod 755 zoo.cfg 

将另外两个节点按照此命令修改。

此时启动依然启动不起来, 异常为:

Attaching to zoo3, zoo2, zoo1
zoo1    | ZooKeeper JMX enabled by default
zoo1    | Using config: /conf/zoo.cfg
zoo1    | mkdir: cannot create directory ‘’: No such file or directory
zoo1    | 2022-07-03 08:43:05,403 [myid:] - INFO  [main:QuorumPeerConfig@174] - Reading configuration from: /conf/zoo.cfg
zoo1    | Invalid config, exiting abnormally
zoo1    | 2022-07-03 08:43:05,408 [myid:] - ERROR [main:QuorumPeerMain@99] - Invalid config, exiting abnormally
zoo1    | org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /conf/zoo.cfg
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:198)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:125)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:91)
zoo1    | Caused by: java.lang.IllegalArgumentException: dataDir is not set
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:428)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:194)
zoo1    |       ... 2 more
zoo1    | 2022-07-03 08:43:05,411 [myid:] - INFO  [main:ZKAuditProvider@42] - ZooKeeper audit is disabled.
zoo1    | 2022-07-03 08:43:05,413 [myid:] - ERROR [main:ServiceUtils@42] - Exiting JVM with code 2
zoo1    | ZooKeeper JMX enabled by default
zoo1    | Using config: /conf/zoo.cfg
zoo1    | mkdir: cannot create directory ‘’: No such file or directory
zoo1    | 2022-07-03 08:43:06,614 [myid:] - INFO  [main:QuorumPeerConfig@174] - Reading configuration from: /conf/zoo.cfg
zoo1    | Invalid config, exiting abnormally
zoo1    | 2022-07-03 08:43:06,617 [myid:] - ERROR [main:QuorumPeerMain@99] - Invalid config, exiting abnormally
zoo1    | org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /conf/zoo.cfg
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:198)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:125)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:91)
zoo1    | Caused by: java.lang.IllegalArgumentException: dataDir is not set
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:428)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:194)
zoo1    |       ... 2 more
zoo1    | 2022-07-03 08:43:06,618 [myid:] - INFO  [main:ZKAuditProvider@42] - ZooKeeper audit is disabled.
zoo1    | 2022-07-03 08:43:06,620 [myid:] - ERROR [main:ServiceUtils@42] - Exiting JVM with code 2
zoo1    | ZooKeeper JMX enabled by default
zoo1    | Using config: /conf/zoo.cfg
zoo1    | mkdir: cannot create directory ‘’: No such file or directory
zoo1    | 2022-07-03 08:43:07,763 [myid:] - INFO  [main:QuorumPeerConfig@174] - Reading configuration from: /conf/zoo.cfg
zoo1    | 2022-07-03 08:43:07,766 [myid:] - ERROR [main:QuorumPeerMain@99] - Invalid config, exiting abnormally
zoo1    | org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /conf/zoo.cfg
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:198)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:125)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:91)
zoo1    | Caused by: java.lang.IllegalArgumentException: dataDir is not set
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:428)
zoo1    |       at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:194)
zoo1    |       ... 2 more
zoo1    | 2022-07-03 08:43:07,770 [myid:] - INFO  [main:ZKAuditProvider@42] - ZooKeeper audit is disabled.
zoo1    | Invalid config, exiting abnormally
zoo1    | 2022-07-03 08:43:07,771 [myid:] - ERROR [main:ServiceUtils@42] - Exiting JVM with code 2

分析原因为找不到myid文件。

将zoo.cfg文件修改, dataDir=/data myid文件存放在/data目录下

# 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.
#
# https://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.httpHost=0.0.0.0
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

启动zookeeper集群

docker-compose -f docker-compose.yml up -d

在使用zookeeper3.6之后版本,zookeeper启动时会启用jetty容器,占用8080端口, 可在配置文件中admin.serverPort=8888进行修改

标签:十一,cfg,zookeeper,zoo,zoo1,QuorumPeerConfig,org,Docker
来源: https://www.cnblogs.com/chinda/p/16440143.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有