当前位置:   article > 正文

docker搭建kafka+zookeeper集群_kafka docker集群

kafka docker集群

开始搭建zookeeper集群

1.首先准备3台服务器或虚拟机并安装docker

10.11.0.19,10.11.0.20,10.11.0.21

2.分别在三台服务器上拉取kafka和zookeeper镜像

首先需要先拿到默认配置文件:

  1. #1. 首先任意启动一个kafka和zookeeper
  2. docker run -d --name zk zookeeper:latest
  3. docker run -d --name kfk kafka:latest
  4. #2. 将两个应用的配置文件cp到对应的目录下比如:kafka/conf,zookeeper/conf
  5. docker cp kfk:/opt/kafka/config/ ./conf
  6. docker cp zk:/conf/ ./conf
  7. #3. 然后在针对server.properties和zoo.cfg做对应编辑

3.分别在三台服务器的任意位置执行如下代码:

  1. 10.11.0.19
  2. docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --privileged=true \
  3. --restart=always --name=zkNode-1 \
  4. -v /home/zookeeper/conf:/conf \
  5. -v /home/zookeeper/data:/data \
  6. -v /home/zookeeper/datalog:/datalog zookeeper:latest
  7. 10.11.0.20
  8. docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --privileged=true \
  9. --restart=always --name=zkNode-1 \
  10. -v /home/zookeeper/conf:/conf \
  11. -v /home/zookeeper/data:/data \
  12. -v /home/zookeeper/datalog:/datalog zookeeper:latest
  13. 10.11.0.21
  14. docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --privileged=true \
  15. --restart=always --name=zkNode-1 \
  16. -v /home/zookeeper/conf:/conf \
  17. -v /home/zookeeper/data:/data \
  18. -v /home/zookeeper/datalog:/datalog zookeeper:latest

3.分别在三台服务器的/home/zookeeper/conf下面修改zoo.cfg文件

  1. 10.11.0.19
  2. #这里需要注意的是,当前服务器是10.11.0.19 故下面server.1的值需要写成0.0.0.0
  3. clientPort=2181
  4. server.1=0.0.0.0:2888:3888
  5. server.2=10.11.0.20:2888:3888
  6. server.3=10.11.0.21:2888:3888
  7. 10.11.0.20
  8. #这里需要注意的是,当前服务器是10.11.0.20 故下面server.2的值需要写成0.0.0.0
  9. clientPort=2181
  10. server.1=10.11.0.19:2888:3888
  11. server.2=0.0.0.0:2888:3888
  12. server.3=10.11.0.21:2888:3888
  13. 10.11.0.21
  14. #这里需要注意的是,当前服务器是10.11.0.21 故下面server.3的值需要写成0.0.0.0
  15. clientPort=2181
  16. server.1=10.11.0.19:2888:3888
  17. server.2=10.11.0.20:2888:3888
  18. server.3=0.0.0.0:2888:3888

4.分别将三台服务器的/home/zookeeper/data/下面将myid修改如下,在对应服务器上直接执行如下代码,如果myid已经是如下值,则忽略此步骤

  1. 10.11.0.19
  2. #这个myid文件中的值应该对应服务器10.11.0.19中zoo.cfg文件中的server.1 的 1
  3. #在任意目录执行此代码均可
  4. echo 1 > /home/zookeeper/data/myid
  5. 10.11.0.20
  6. #这个myid文件中的值应该对应服务器10.11.0.20中zoo.cfg文件中的server.2 的 2
  7. #在任意目录执行此代码均可
  8. echo 2 > /home/zookeeper/data/myid
  9. 10.11.0.21
  10. #这个myid文件中的值应该对应服务器10.11.0.21中zoo.cfg文件中的server.3 的 3
  11. #在任意目录执行此代码均可
  12. echo 3 > /home/zookeeper/data/myid

至此,zookeeper集群就搭建完成了.

下面开始搭建kafka集群

1.分别在三台服务器中执行如下代码:

  1. 10.11.0.19
  2. #docker 启动参数说明: -d:后台启动,--restart=always:如果挂了总是会重启,--name:设置容器名
  3. #-p: 设置宿主机与容器之间的端口映射,例如:9902:9092,表示将容器中9092端口映射到宿主机的9902端口,当有请求访问宿主机的9902端口时,会被转发到容器内部的9092端口.
  4. #-v:设置宿主机与容器之间的路径或文件映射,例如:/home/kafka/logs:/opt/kafka/logs,表示将容器内部的路径/opt/kafka/logs目录映射到宿主机的/home/kafka/logs目录,可以方便的从宿主机/home/kafka/logs/就能访问到容器内的目录,一般数据文件夹,配置文件均可如此配置,便于管理和数据持久化
  5. #-e 设置环境变量参数,例如-e KAFKA_BROKER_ID=1,表示将该环境变量设置到容器的环境变量中,容器在启动时会读取该环境变量,并替换掉容器中配置文件的对应默认配置(server.properties文件中的 broker.id=1)
  6. # kafka:latest 表示使用docker镜像名称为kafka,并且版本为latest的镜像来启动
  7. docker run -d --restart=always --name kafkaNode-1 \
  8. -p 9092:9092 \
  9. -v /home/kafka/logs:/opt/kafka/logs \
  10. -v /home/kafka/data:/kafka/kafka-logs \
  11. -v /home/kafka/conf:/opt/kafka/config \
  12. -e KAFKA_BROKER_ID=1 \
  13. -e KAFKA_LOG_DIRS="/kafka/kafka-logs" \
  14. -e KAFKA_ZOOKEEPER_CONNECT=10.11.0.19:2181,10.11.0.20:2181,10.11.0.21:2181 \
  15. -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
  16. -e KAFKA_LOG_RETENTION_HOURS=72 \
  17. -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.11.0.19:9092 \
  18. -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t kafka:latest
  19. 10.11.0.20
  20. docker run -d --restart=always --name kafkaNode-1 \
  21. -p 9092:9092 -v /home/kafka/logs:/opt/kafka/logs \
  22. -v /home/kafka/data:/kafka/kafka-logs \
  23. -v /home/kafka/conf:/opt/kafka/config \
  24. -e KAFKA_BROKER_ID=2 \
  25. -e KAFKA_LOG_DIRS="/kafka/kafka-logs" \
  26. -e KAFKA_ZOOKEEPER_CONNECT=10.11.0.19:2181,10.11.0.20:2181,10.11.0.21:2181 \
  27. -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
  28. -e KAFKA_LOG_RETENTION_HOURS=72 \
  29. -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.11.0.20:9092 \
  30. -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t kafka:latest
  31. 10.11.0.21
  32. docker run -d --restart=always --name kafkaNode-1 \
  33. -p 9092:9092 -v /home/kafka/logs:/opt/kafka/logs \
  34. -v /home/kafka/data:/kafka/kafka-logs \
  35. -v /home/kafka/conf:/opt/kafka/config \
  36. -e KAFKA_BROKER_ID=3 \
  37. -e KAFKA_LOG_DIRS="/kafka/kafka-logs" \
  38. -e KAFKA_ZOOKEEPER_CONNECT=10.11.0.19:2181,10.11.0.20:2181,10.11.0.21:2181 \
  39. -e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
  40. -e KAFKA_LOG_RETENTION_HOURS=72 \
  41. -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.11.0.21:9092 \
  42. -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t kafka:latest

2.完事儿了~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/382912
推荐阅读
相关标签
  

闽ICP备14008679号