docker-compose 搭建kafka集群
docker-compose搭建kafka集群
下载镜像
1.wurstmeister/zookeeper
2.wurstmeister/kafka
3.sheepkiller/kafka-manager
安装docker-compose(如果没有)
https://docs.docker.com/compose/install/
在每台机器创建文件夹(节点)
mkdir -p /database/kafka_log/zookeeper/zk1/conf
mkdir -p /database/kafka_log/zookeeper/zk1/data
mkdir -p /database/kafka_log/zookeeper/zk1/log
mkdir -p /database/kafka_log/zookeeper/zk2/conf
mkdir -p /database/kafka_log/zookeeper/zk2/data
mkdir -p /database/kafka_log/zookeeper/zk2/log
mkdir -p /database/kafka_log/zookeeper/zk3/conf
mkdir -p /database/kafka_log/zookeeper/zk3/data
mkdir -p /database/kafka_log/zookeeper/zk3/log
mkdir -p /database/kafka_log/kafka/kafka1/conf
mkdir -p /database/kafka_log/kafka/kafka1/log
mkdir -p /database/kafka_log/kafka/kafka2/conf
mkdir -p /database/kafka_log/kafka/kafka2/log
mkdir -p /database/kafka_log/kafka/kafka3/conf
创建docker网桥
1.docker network list 查看已生成的网桥
2.docker network inspect ***** (*****:网桥的名称)
3.docker network create --driver bridge --subnet 172.16.0.0/25 --gateway 172.16.0.1 zookeeper_kafka 生成新的网桥(ip根据自己的docker网桥号的规律创建)
4.(可通信跳过)如果多机器网桥无法通信 ufw allow from 172.19.0.0/16 (172.19.0.0/16:容器的IP 和使用的端口) ufw 若果没有安装即可
创建docker-compose文件(节点一)
version: '3.7'
networks:
zookeeper_kafka:
external: true
services:
zookeeper1:
image: wurstmeister/zookeeper
restart: unless-stopped
hostname: zookeeper1
container_name: zookeeper1
ports:
- 2181:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 10 ## 唯一标识 不可重复 (同一个节点server和kafka保持一致)
ZOO_SERVERS: server.10=192.168.1.181:2888:3888;2181 server.20=192.168.1.169:2888:3888;2181 server.30=192.168.1.129:2888:3888;2181 ##zookeeper节点信息
volumes:
# - /database/kafka_log/zookeeper/zk1/conf/zoo.cfg:/opt/zookeeper-3.4.13/conf/zoo.cfg
- /database/kafka_log/zookeeper/zk1/data:/opt/zookeeper-3.4.13/data
- /database/kafka_log/zookeeper/zk1/log:/opt/zookeeper-3.4.13/datalog
networks:
- zookeeper_kafka
kafka1:
image: wurstmeister/kafka
restart: unless-stopped
container_name: kafka1
hostname: kafka1
ports:
- "9092:9092"
external_links: # 连接本compose文件以外的container 节点ip 或者hostname
- 192.168.1.181
- 192.168.1.169
- 192.168.1.129
environment:
KAFKA_BROKER_ID: 10
KAFKA_ADVERTISED_HOST_NAME: 192.168.1.181 ## 修改:宿主机IP
KAFKA_ADVERTISED_PORT: 9092 ## 修改:宿主机映射port
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.181:9092 ## 绑定发布订阅的端口。修改:宿主机IP
KAFKA_ZOOKEEPER_CONNECT: "192.168.1.181:2181,192.168.1.169:2181,192.168.1.129:2181"
volumes: 挂载本地文件
- "/var/run/docker.sock:/var/run/docker.sock"
- "/database/kafka_log/kafka/kafka1/log:/kafka"
networks:
- zookeeper_kafka
kafka-manager:
image: sheepkiller/kafka-manager:latest
restart: unless-stopped
container_name: kafka-manager
hostname: kafka-manager
ports:
- "9000:9000"
# links: # 连接本compose文件创建的container
# - kafka1
# - kafka2
# - kafka3
external_links: # 连接本compose文件以外的container 节点ip 或者hostname
- 192.168.1.181
- 192.168.1.169
- 192.168.1.129
environment:
ZK_HOSTS: 192.168.1.181:2181,192.168.1.169:2181,192.168.1.129:2181 ## 修改:宿主机IP
TZ: CST-8
networks:
- zookeeper_kafka
创建docker-compose文件(节点二)
version: '3.7'
networks:
zookeeper_kafka:
external: true
services:
zookeeper2:
image: wurstmeister/zookeeper
restart: unless-stopped
hostname: zookeeper2
container_name: zookeeper2
ports:
- 2181:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 20
ZOO_SERVERS: server.10=192.168.1.181:2888:3888;2181 server.20=192.168.1.169:2888:3888;2181 server.30=192.168.1.129:2888:3888;2181
volumes:
# - /database/kafka_log/zookeeper/zk2/conf/zoo.cfg:/opt/zookeeper-3.4.13/conf/zoo.cfg
- /database/kafka_log/zookeeper/zk2/data:/opt/zookeeper-3.4.13/data
- /database/kafka_log/zookeeper/zk2/log:/opt/zookeeper-3.4.13/datalog
networks:
- zookeeper_kafka
kafka2:
image: wurstmeister/kafka
restart: unless-stopped
container_name: kafka2
hostname: kafka2
ports:
- "9092:9092"
external_links:
- 192.168.1.181
- 192.168.1.169
- 192.168.1.129
environment:
KAFKA_BROKER_ID: 20
KAFKA_ADVERTISED_HOST_NAME: 192.168.1.169 ## 修改:宿主机IP
KAFKA_ADVERTISED_PORT: 9092 ## 修改:宿主机映射port
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.169:9092 ## 修改:宿主机IP
KAFKA_ZOOKEEPER_CONNECT: "192.168.1.181:2181,192.168.1.169:2181,192.168.1.129:2181"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/database/kafka_log/kafka/kafka2/log:/kafka"
networks:
- zookeeper_kafka
创建docker-compose文件(节点…)
version: '3.7'
networks:
zookeeper_kafka:
external: true
services:
zookeeper3:
image: wurstmeister/zookeeper
restart: unless-stopped
hostname: zookeeper3
container_name: zookeeper3
ports:
- 2181:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 30
ZOO_SERVERS: server.10=192.168.1.181:2888:3888;2181 server.20=192.168.1.169:2888:3888;2181 server.30=192.168.1.129:2888:3888;2181
volumes:
# - /database/kafka_log/zookeeper/zk3/conf/zoo.cfg:/opt/zookeeper-3.4.13/conf/zoo.cfg
- /database/kafka_log/zookeeper/zk3/data:/opt/zookeeper-3.4.13/data
- /database/kafka_log/zookeeper/zk3/log:/opt/zookeeper-3.4.13/datalog
networks:
- zookeeper_kafka
kafka3:
image: wurstmeister/kafka
restart: unless-stopped
container_name: kafka3
hostname: kafka3
ports:
- "9092:9092"
external_links:
- 192.168.1.181
- 192.168.1.169
- 192.168.1.129
environment:
KAFKA_BROKER_ID: 30
KAFKA_ADVERTISED_HOST_NAME: 192.168.1.129 ## 修改:宿主机IP
KAFKA_ADVERTISED_PORT: 9092 ## 修改:宿主机映射port
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.129:9092 ## 修改:宿主机IP
KAFKA_ZOOKEEPER_CONNECT: "192.168.1.181:2181,192.168.1.169:2181,192.168.1.129:2181"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/database/kafka_log/kafka/kafka3/log:/kafka"
networks:
- zookeeper_kafka
注意
1. docker挂载的目录修改为自己机器创建的目录
2. 查看镜像中zookeeper 的版本
3. 安装时docker指令 进行了rm 或者 down 删除容器 重新启动 要删除日志目录下的meta.properties文件
docker-compose 搭建kafka集群的更多相关文章
- 用 Docker 快速搭建 Kafka 集群
开源Linux 一个执着于技术的公众号 版本 •JDK 14•Zookeeper•Kafka 安装 Zookeeper 和 Kafka Kafka 依赖 Zookeeper,所以我们需要在安装 Kaf ...
- Docker实战之Kafka集群
1. 概述 Apache Kafka 是一个快速.可扩展的.高吞吐.可容错的分布式发布订阅消息系统.其具有高吞吐量.内置分区.支持数据副本和容错的特性,适合在大规模消息处理场景中使用. 笔者之前在物联 ...
- 大数据平台搭建-kafka集群的搭建
本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...
- centos7搭建kafka集群-第二篇
好了,本篇开始部署kafka集群 Zookeeper集群搭建 注:Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群(也可以用kafka自带的ZK,但不推荐) 1.软 ...
- Kafka学习之(六)搭建kafka集群
想要搭建kafka集群,必须具备zookeeper集群,关于zookeeper集群的搭建,在Kafka学习之(五)搭建kafka集群之Zookeeper集群搭建博客有说明.需要具备两台以上装有zook ...
- 什么是kafka以及如何搭建kafka集群?
一.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. Kafka场景比喻 接下来我大概比喻下Kafka的使用场景 消息中间件:生产者和消费者 妈妈:生产 ...
- 利用新版本自带的Zookeeper搭建kafka集群
安装简要说明新版本的kafka自带有zookeeper,其实自带的zookeeper完全够用,本篇文章以记录使用自带zookeeper搭建kafka集群.1.关于kafka下载kafka下载页面:ht ...
- docker容器中搭建kafka集群环境
Kafka集群管理.状态保存是通过zookeeper实现,所以先要搭建zookeeper集群 zookeeper集群搭建 一.软件环境: zookeeper集群需要超过半数的的node存活才能对外服务 ...
- docker搭建kafka集群(高级版)
1. 环境docker, docker-compose 2.zookeeper集群 /data/zookeeper/zoo1/config/zoo.cfg # The number of millis ...
随机推荐
- springcloud starter(一)
Spring Cloud - Getting Started Example, 转载自:https://www.logicbig.com/tutorials/spring-framework/spri ...
- ❤️用武侠小说的形式来阅读LinkedList的源码,绝了!
一.LinkedList 的剖白 大家好,我是 LinkedList,和 ArrayList 是同门师兄弟,但我俩练的内功却完全不同.师兄练的是动态数组,我练的是链表. 问大家一个问题,知道我为什么要 ...
- Servlet过滤器----Filter
JavaEE的Servlet规范描述了三种技术:Servlet,Filter,Listener (一)过滤器简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过F ...
- JDK和环境配置,eclipse安装与使用
本博客部分参照https://blog.csdn.net/PGY0000/article/details/79256720 (记住要尊重别人的劳动产品) 原博客给的链接和后面的安装过程有点不一样,不能 ...
- 安装redis 6.0.6
1.规划目录:下载目录.安装目录.redis数据目录mkdir -p /data/appmkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}mk ...
- 并发编程之:BlockingQueue
大家好,我是小黑,一个在互联网苟且偷生的农民工. 队列 学过数据结构的同学应该都知道,队列是数据结构中一种特殊的线性表结构,和平时使用的List,Set这些数据结构相比有点特殊,它的特殊之处在于它只允 ...
- JS013. 重写toFixed( )方法,toFixed()原理 - 四舍五入?银行家舍入法?No!六舍七允许四舍五入√!
以下为场景实测与原理分析,需要重写函数请直接滚动至页尾!!! 语法 - Number.prototype.toFixed( ) // toFixed()方法 使用定点表示法来格式化一个数值. numO ...
- Python - poetry(3)配置项详解
config 命令 poetry 通过 config 命令进行配置 也可以直接在 config.toml 文件中进行配置,该文件将在首次运行该命令时自动创建 文件目录 macOS:~/Library/ ...
- Linux目录同步到阿里云OSS工具ossutil
Linux目录同步到阿里云OSS工具ossutil 背景 最近公司服务用户激增,常规文件服务器不能满足需求,严重影响性能,决定将静态文件迁移到阿里云OSS,用来解决性能问题,提高用户体验.毕竟之前 ...
- HDU 6170 Two strings( DP+字符串匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=6170 题目大意: 给出两个字符串s1和s2(长度小于等于2500). s1是一个正常的包含大小写字母的字符串,s ...