docker搭建kafka+zookeeper集群

开始搭建zookeeper集群

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

10.11.0.19,10.11.0.20,10.11.0.21

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

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

#1. 首先任意启动一个kafka和zookeeper
docker run -d --name zk zookeeper:latest
docker run -d --name kfk kafka:latest

#2. 将两个应用的配置文件cp到对应的目录下比如:kafka/conf,zookeeper/conf
docker cp kfk:/opt/kafka/config/ ./conf
docker cp zk:/conf/ ./conf

#3. 然后在针对server.properties和zoo.cfg做对应编辑

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

10.11.0.19

docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --privileged=true \
--restart=always --name=zkNode-1 \
-v /home/zookeeper/conf:/conf \
-v /home/zookeeper/data:/data \
-v /home/zookeeper/datalog:/datalog zookeeper:latest

10.11.0.20

docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --privileged=true \
--restart=always --name=zkNode-1 \
-v /home/zookeeper/conf:/conf \
-v /home/zookeeper/data:/data \
-v /home/zookeeper/datalog:/datalog zookeeper:latest

10.11.0.21

docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --privileged=true \
--restart=always --name=zkNode-1 \
-v /home/zookeeper/conf:/conf \
-v /home/zookeeper/data:/data \
-v /home/zookeeper/datalog:/datalog zookeeper:latest

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

10.11.0.19
#这里需要注意的是,当前服务器是10.11.0.19 故下面server.1的值需要写成0.0.0.0

clientPort=2181
server.1=0.0.0.0:2888:3888
server.2=10.11.0.20:2888:3888
server.3=10.11.0.21:2888:3888


10.11.0.20
#这里需要注意的是,当前服务器是10.11.0.20 故下面server.2的值需要写成0.0.0.0

clientPort=2181
server.1=10.11.0.19:2888:3888
server.2=0.0.0.0:2888:3888
server.3=10.11.0.21:2888:3888


10.11.0.21
#这里需要注意的是,当前服务器是10.11.0.21 故下面server.3的值需要写成0.0.0.0

clientPort=2181
server.1=10.11.0.19:2888:3888
server.2=10.11.0.20:2888:3888
server.3=0.0.0.0:2888:3888

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

10.11.0.19

#这个myid文件中的值应该对应服务器10.11.0.19中zoo.cfg文件中的server.1 的 1

#在任意目录执行此代码均可
echo 1 > /home/zookeeper/data/myid



10.11.0.20

#这个myid文件中的值应该对应服务器10.11.0.20中zoo.cfg文件中的server.2 的 2

#在任意目录执行此代码均可
echo 2 > /home/zookeeper/data/myid



10.11.0.21

#这个myid文件中的值应该对应服务器10.11.0.21中zoo.cfg文件中的server.3 的 3

#在任意目录执行此代码均可
echo 3 > /home/zookeeper/data/myid

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

下面开始搭建kafka集群

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

10.11.0.19
#docker 启动参数说明: -d:后台启动,--restart=always:如果挂了总是会重启,--name:设置容器名
#-p: 设置宿主机与容器之间的端口映射,例如:9902:9092,表示将容器中9092端口映射到宿主机的9902端口,当有请求访问宿主机的9902端口时,会被转发到容器内部的9092端口.
#-v:设置宿主机与容器之间的路径或文件映射,例如:/home/kafka/logs:/opt/kafka/logs,表示将容器内部的路径/opt/kafka/logs目录映射到宿主机的/home/kafka/logs目录,可以方便的从宿主机/home/kafka/logs/就能访问到容器内的目录,一般数据文件夹,配置文件均可如此配置,便于管理和数据持久化
#-e 设置环境变量参数,例如-e KAFKA_BROKER_ID=1,表示将该环境变量设置到容器的环境变量中,容器在启动时会读取该环境变量,并替换掉容器中配置文件的对应默认配置(server.properties文件中的 broker.id=1)
# kafka:latest 表示使用docker镜像名称为kafka,并且版本为latest的镜像来启动
docker run -d --restart=always --name kafkaNode-1 \
-p 9092:9092 \
-v /home/kafka/logs:/opt/kafka/logs \
-v /home/kafka/data:/kafka/kafka-logs \
-v /home/kafka/conf:/opt/kafka/config \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_LOG_DIRS="/kafka/kafka-logs" \
-e KAFKA_ZOOKEEPER_CONNECT=10.11.0.19:2181,10.11.0.20:2181,10.11.0.21:2181 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=72 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.11.0.19:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t kafka:latest


10.11.0.20

docker run -d --restart=always --name kafkaNode-1 \
-p 9092:9092 -v /home/kafka/logs:/opt/kafka/logs \
-v /home/kafka/data:/kafka/kafka-logs \
-v /home/kafka/conf:/opt/kafka/config \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_LOG_DIRS="/kafka/kafka-logs" \
-e KAFKA_ZOOKEEPER_CONNECT=10.11.0.19:2181,10.11.0.20:2181,10.11.0.21:2181 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=72 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.11.0.20:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t kafka:latest


10.11.0.21

docker run -d --restart=always --name kafkaNode-1 \
-p 9092:9092 -v /home/kafka/logs:/opt/kafka/logs \
-v /home/kafka/data:/kafka/kafka-logs \
-v /home/kafka/conf:/opt/kafka/config \
-e KAFKA_BROKER_ID=3 \
-e KAFKA_LOG_DIRS="/kafka/kafka-logs" \
-e KAFKA_ZOOKEEPER_CONNECT=10.11.0.19:2181,10.11.0.20:2181,10.11.0.21:2181 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=72 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.11.0.21:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t kafka:latest

2.完事儿了~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值