这里介绍kafka集群的docker容器化安装
- 下载好kafka.tar安装包
- 在集群机器上安装docker环境,设置为开启自启动
- 将kafka.tar文件拷贝到机器的/opt/kafka目录下
- 使用docker load -i kafka.tar命令将kafka相关镜像导入
- 使用docker run -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper -itd --restart always wurstmeister/zookeeper:latest命令将zookeeper容器启动
- 修改容器中/opt/zookeeper-3.4.13/conf/zoo.cfg文件内容,添加如下内容,注意本机的地址要用0.0.0.0代替,否则容器识别不到,zookeeper会启动失败,其中data-dispatcher为集群机器的hostname,请按照实际填写
server.1=0.0.0.0:2888:3888 server.2=data-dispatcher-2:2888:3888 server.3=data-dispatcher-3:2888:3888
在容器的/opt/zookeeper-3.4.13/data下创建myid文件,文件的内容为机器zookeeper的id号,如1、2、3。配置容器中的/etc/resolv.conf,使其指向dns服务器。
使用docker restart zookeeper命令重启zookeeper镜像,重启完成之后进入镜像的/opt/zookeeper-3.4.13/bin目录下,执行./zkServer.sh status命令,查看zookeeper状态,当出现以下信息时,表示zookeeper集群安装成功
使用如下命令启动kafka容器,其中标红的部分,应根据机器不同而不同。
zks="data-dispatcher-1:2181,data-dispatcher-2:2181,data-dispatcher-3:2181";docker run -p 9092:9092 --name kafka -d -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=${zks} -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://data-dispatcher-1:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latest
可以按照这个步骤编写shell脚本实现自动化安装。