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 ...
随机推荐
- docker学习之network:初识网络配置
起因 我的开发环境需要一个python代码运行环境.reids服务和mysql服务. 由于以前,我的开发环境是mac,而CI和线上运行环境是centos,偶尔会出项本地单元测试跑不过,而CI可以过.这 ...
- Python - 面向对象编程 - @property
前言 前面讲到实例属性的时候,我们可以通过 实例对象.实例属性 来访问对应的实例属性 但这种做法是不建议的,因为它破坏了类的封装原则 正常情况下,实例属性应该是隐藏的,只允许通过类提供的方法来间接实现 ...
- finally方法体
1.资源释放 java7可以在try(创建资源对象,方法体结束之后自动释放) 2.finally中有返回
- VueJS学习资料大全
参考:http://www.worktle.com/articles/2467/ 文档&社区 Vue.js官方网站(中文) :http://cn.vuejs.org/ Vue论坛:http:/ ...
- NOIP模拟51
樱花满地集于我心,楪舞纷飞祈愿相随 前言 太菜了,人手切掉两个题,我竟然一道都不会.. 改 T3 的时候整个人的心态都崩掉了,一部分原因可能是语文素养不高导致我看不懂题解. 另一部分可能就是系太不太好 ...
- Windows中nginx多次启动的问题
在Windows上做开发环境中的nginx服务器.为了使nginx在后台运行,使用如下命令来启停nginx: cd <nginx安装目录> # 开启nginx并在后台运行 start ng ...
- 路由懒加载---Vue Router
一.什么是懒加载? 懒加载也就是延迟加载或者按需加载,即在需要的时候进行加载. 二.为什么在Vue路由中使用懒加载? 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常 ...
- 论文解读《Momentum Contrast for Unsupervised Visual Representation Learning》俗称 MoCo
论文题目:<Momentum Contrast for Unsupervised Visual Representation Learning> 论文作者: Kaiming He.Haoq ...
- 5.21学习总结——android开发实现用户头像的上传
最近在做个人头像的上传,具体是能调用摄像头和从相册进行选择.本篇文章参考的我的同学的博客,大家有兴趣可以去原作者那里去看看: Hi(.・∀・)ノ (cnblogs.com) 1.使用glide进行图片 ...
- PHP中的日期相关函数(二)
上回文章中我们介绍了三个时间日期相关的对象,不过它们的出镜频率并不是特别地高.今天学习的对象虽说可能不少人使用过,但是它的出镜频率也是非常低的.它们其实就是我们非常常用的那些面向过程的日期函数的面向对 ...