docker单节点的zk集群部署

本文详细描述了如何使用Docker在阿里云平台上部署Zookeeper集群,包括镜像选择、环境变量设置、容器配置、网络连接以及集群配置文件的管理。
摘要由CSDN通过智能技术生成
version: '3'
services:
  zookeeper-node1:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/zookeeper:3.8.1
#    user: "hadoop:hadoop"
    container_name: zookeeper-node1
    hostname: zookeeper-node1
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - privileged=true
    env_file:
      - .env
    volumes:
      - /data/docker-data/zkcluster/config/zoo.cfg:${ZOOKEEPER_HOME}/conf/zoo.cfg
      - /data/docker-data/zkcluster/zk1/data/myid:${ZOOKEEPER_HOME}/data/myid
    ports:
      - "${ZOOKEEPER_NODE1_SERVER_PORT}:2181"
      - "2888:2888"
      - "3888:3888"
    expose:
      - 2888
      - 3888
    command: ["sh","-c","/opt/apache/bootstrap.sh"]
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "netstat -tnlp|grep :2181 || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 5
    extra_hosts:
      - "zookeeper-node1:127.0.0.1"
      - "zookeeper-node2:127.0.0.1"
      - "zookeeper-node3:127.0.0.1"
  zookeeper-node2:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/zookeeper:3.8.1
#    user: "hadoop:hadoop"
    container_name: zookeeper-node2
    hostname: zookeeper-node2
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - privileged=true
    env_file:
      - .env
    volumes:
      - /data/docker-data/zkcluster/config/zoo.cfg:${ZOOKEEPER_HOME}/conf/zoo.cfg
      - /data/docker-data/zkcluster/zk2/data/myid:${ZOOKEEPER_HOME}/data/myid
    ports:
      - "${ZOOKEEPER_NODE2_SERVER_PORT}:2181"
      - "4888:4888"
      - "5888:5888"
    expose:
      - 4888
      - 5888
    command: ["sh","-c","/opt/apache/bootstrap.sh"]
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "netstat -tnlp|grep :2181 || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 5
    extra_hosts:
      - "zookeeper-node1:127.0.0.1"
      - "zookeeper-node2:127.0.0.1"
      - "zookeeper-node3:127.0.0.1"
  zookeeper-node3:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/zookeeper:3.8.1
#    user: "hadoop:hadoop"
    container_name: zookeeper-node3
    hostname: zookeeper-node3
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - privileged=true
    env_file:
      - .env
    volumes:
      - /data/docker-data/zkcluster/config/zoo.cfg:${ZOOKEEPER_HOME}/conf/zoo.cfg
      - /data/docker-data/zkcluster/zk3/data/myid:${ZOOKEEPER_HOME}/data/myid
    ports:
      - "${ZOOKEEPER_NODE3_SERVER_PORT}:2181"
      - "6888:6888"
      - "7888:7888"
    expose:
      - 6888
      - 7888
    command: ["sh","-c","/opt/apache/bootstrap.sh"]
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "netstat -tnlp|grep :2181 || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 5
    extra_hosts:
      - "zookeeper-node1:127.0.0.1"
      - "zookeeper-node2:127.0.0.1"
      - "zookeeper-node3:127.0.0.1"

# 连接外部网络
networks:
  hadoop-network:
    external: true

cat >zoo.cfg<<EOF
# tickTime:Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。session最小有效时间为tickTime*2
tickTime=2000

# Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。不要使用/tmp目录
dataDir=/opt/apache/zookeeper/data

# 端口,默认就是2181
clientPort=2181

# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量),超过此数量没有回复会断开链接
initLimit=10

# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
syncLimit=5

# 最大客户端链接数量,0不限制,默认是0
maxClientCnxns=60

# zookeeper集群配置项,server.1,server.2,server.3是zk集群节点;zookeeper-node1,zookeeper-node2,zookeeper-node3是主机名称;2888是主从通信端口;3888用来选举leader
server.1=zookeeper-node1:2888:3888
server.2=zookeeper-node2:4888:5888
server.3=zookeeper-node3:6888:7888
EOF



;server.1=zookeeper-node1:2888:3888
;server.2=zookeeper-node2:2888:3888
;server.3=zookeeper-node3:2888:3888
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值