首页 > 其他 > 详细

基于docker搭建zookeeper集群、kafka集群---二(多台真机之间的集群)

时间:2019-06-05 14:08:22      阅读:731      评论:0      收藏:0      [点我收藏+]

三台真机,容器采用host

192.168.0.128  192.168.0.141 192.168.0.142

zookeeper集群搭建

在每台机上执行脚本,

#!/bin/bash
#Get zookeeper image
zkimage=`docker images | grep zookeeper | awk {print $1}`
if [ -n "$zkimage" ]
then
    echo The zookeeper image is already existed.
else
    echo Pull the latest zookeeper image.
    docker pull zookeeper
fi

#Create network for zookeeper containers
zknet=`docker network ls | grep yapi_net | awk {print $2}`
if [ -n "$zknet" ]
then
    echo The zknetwork is already existed.
else
    echo Create zknetwork.
    docker network create --subnet 172.30.0.0/16 yapi_net
fi

#Start zookeeper cluster
echo Start 3 zookeeper servers.
rm -rf   /opt/zookeeper_1/data  /opt/zookeeper_1/datalog  /var/log/zookeeper_1/log
rm -rf   /opt/zookeeper_2/data  /opt/zookeeper_2/datalog  /var/log/zookeeper_2/log
rm -rf   /opt/zookeeper_3/data  /opt/zookeeper_3/datalog  /var/log/zookeeper_3/log

mkdir -p  /opt/zookeeper_1/data  /opt/zookeeper_1/datalog  /var/log/zookeeper_1/log
mkdir -p  /opt/zookeeper_2/data  /opt/zookeeper_2/datalog  /var/log/zookeeper_2/log
mkdir -p  /opt/zookeeper_3/data  /opt/zookeeper_3/datalog  /var/log/zookeeper_3/log

ZOO_SERVERS="server.1=192.168.0.128:2888:3888 server.2=192.168.0.142:2888:3888 server.3=192.168.0.141:2888:3888" docker run --network host -d --restart always -v /opt/zookeeper_1/data:/data -v /opt/zookeeper_1/datalog:/datalog -v /var/log/zookeeper_1/log:/logs -e ZOO_SERVERS="$ZOO_SERVERS" -e ZOO_MY_ID=1 --name zookeeper_1 -p 2182:2181 -p 2888:2888 -p 3888:3888 docker.io/zookeeper

注意每台机的技术分享图片id号不同

官方的镜像有可能配置的环境变量不同,需要修改脚本,参考Entrypoint文件,和配置文件,配置文件如下:

clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.1=192.168.0.128:2888:3888
server.2=192.168.0.142:2888:3888
server.3=192.168.0.141:2888:3888

单机(非集群)的配置文件,telnet  ip  2181 = 》stat ==》Mode: standalone

clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60

kafka集群

在每台机上执行脚本,

#!/bin/bash
#Get zookeeper image
kfkimage=`docker images | grep docker.io/wurstmeister/kafka | awk {print $1}`
if [ -n "$kfkimage" ]
then
    echo The docker.io/wurstmeister/kafka is already existed.
else
    echo Pull the image.
    docker pull docker.io/wurstmeister/kafka
fi

#Create network for zookeeper containers
kfknet=`docker network ls | grep yapi_net | awk {print $2}`
if [ -n "$kfknet" ]
then
    echo The kfknetwork is already existed.
else
    echo Create kfknetwork.
    docker network create --subnet 172.30.0.0/16 yapi_net
fi

#Start 3  zookeeper cluster
echo Start 3 kafka servers.

rm -rf  /opt/kafka_1/logdata
rm -rf  /opt/kafka_2/logdata
rm -rf  /opt/kafka_3/logdata

mkdir -p  /opt/kafka_1/logdata
mkdir -p  /opt/kafka_2/logdata
mkdir -p  /opt/kafka_3/logdata

#kafka ip
kfk_1_ip=172.30.0.41
kfk_2_ip=172.30.0.42
kfk_3_ip=172.30.0.43
#zk_jiqun_ip=172.30.0.31:2181
zk_jiqun_ip=192.168.0.128:2181,192.168.0.142:2181,192.168.0.141:2181
docker run --restart always -d --name kafka_1 --network host -e KAFKA_ZOOKEEPER_CONNECT=${zk_jiqun_ip} -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e KAFKA_BROKER_ID=141 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.141:9092 -v /opt/kafka_1/logdata:/kafka -p 9092:9092  docker.io/wurstmeister/kafka

注意id号  和PLAINTEXT://192.168.0.141:9092,(创建容器后,再进入容器修改,restart后会重置,所以必须在创建容器时,就要指定好环境变量)

 

基于docker搭建zookeeper集群、kafka集群---二(多台真机之间的集群)

原文:https://www.cnblogs.com/fanever/p/10979036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!