赞
踩
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集群就搭建完成了.
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.完事儿了~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。