Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager
Kafka 搭建:
建立Zookeeper容器:
这里我们用最简单的方式创建一个独立的Zookeeper节点,如果要考虑zookeeper的高可用,可以将其做成一个集群,最好是能有多台机器。
$ docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
默认的,容器内配置文件在,/conf/zoo.cfg,数据和日志目录默认在/data 和 /datalog,需要的话可以将上述目录映射到宿主机的可靠文件目录下。
建立kafka集群节点:
使用docker命令可快速在同一台机器搭建多个kafka,只需要改变brokerId和端口
- 节点1:
$ docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.102:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.102:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
- 节点2:
$ docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.102:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.102:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka
- 节点3:
$ docker run -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.102:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.102:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka
这里面主要设置了4个参数
KAFKA_BROKER_ID=0
KAFKA_ZOOKEEPER_CONNECT=192.168.0.102:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.102:9092
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
复制代码
中间两个参数的 192.168.0.102
改为 宿主机器
的IP地址,如果不这么设置,可能会导致在别的机器上访问不到 kafka。
怎么查看本机的 ip:
$ ifconfig en0
测试kafka:
- 进入kafka容器的命令行
$ docker exec -ti kafka /bin/bash
- 进入kafka所在目录
$ cd opt/kafka_2.12-1.1.0/
创建Replication为2,Partition为2的topic:
$ bin/kafka-topics.sh --create --zookeeper 192.168.0.102:2181 --replication-factor 2 --partitions 2 --topic partopic
或者可以通过 kafka-manager
创建
查看topic的状态:
在kafka容器中的 opt/kafka_2.12-1.1.0/
目录下输入
$ bin/kafka-topics.sh --describe --zookeeper 192.168.0.102:2181 --topic partopic
显示每个分区的Leader机器为broker0,在broker0和1上具有备份,Isr代表存活的备份机器中存活的。 当停掉kafka1后,
$ docker stop kafka1
再查看topic状态,输出结果:
Topic:partopic PartitionCount:2 ReplicationFactor:2 Configs:Topic: partopic Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0Topic: partopic Partition: 1 Leader: 0 Replicas: 1,0 Isr: 0复制代码
创建Kafka管理节点:
kafka-manager
有图形化UI,可以方便的监控集群状态,调整队列配置
$ docker run -itd --restart=always --name=kafka-manager -p 9000:9000 -e ZK_HOSTS="192.168.0.102:2181" sheepkiller/kafka-manager
容器启动以后访问主机的9000端口,0.0.0:9000
首次进入需要添加一个集群标识,如下图所示
配置好以后,通过Zookeeper该管理节点可以读取到整个Kafka集群的信息,并且我们可以通过JMX直接看到集群的健康状态
也可以看到主题的读写速度,偏移量等信息,如下图所示:
Brokers ,Partitions,Replicas 都能看到
以及 group:
参考文章:
blog.csdn.net/lblblblblzd…
blog.csdn.net/lblblblblzd…
原文地址: mac 使用 docker搭建 kafka集群 + Zookeeper + kafka-manager
Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager相关推荐
- 利用docker搭建服务器集群并部署大数据生态软件
1.集群搭建与配置 本来想使用centos镜像搭建服务器集群,但最小化安装版的镜像也需要1G左右,如果后面再部署一些大数据软件,单是多台服务器环境部署就会占用大量空间,加上此版本镜像在不同电脑环境的安 ...
- Docker搭建Clickhouse集群
Docker搭建Clickhouse集群 环境说明 2C 2G 30G hostname IP 操作系统 服务 localhost 192.168.88.171 CentOs 7.8 clickhou ...
- Docker搭建hadoop集群
参考https://github.com/kiwenlau/hadoop-cluster-docker/blob/master/start-container.sh 因为之前在VMware上操作Had ...
- 用Docker搭建Elasticsearch集群
用Docker搭建Elasticsearch集群 对于用Docker搭建分布式Elasticsearhc集群的一个介绍,以及一些实施中遇到问题的总结 搜索服务简述 结合业务的场景,在目前的商品体系需要 ...
- docker 添加端口映射_苟且偷生的程序猿没法摸鱼了,从docker搭建elasticsearch集群开始学习...
最近刚换了公司,然后公司刚好使用的docker.而本人作为一个石锤的搬砖员,之前只知道搬砖们,对于这些东西确实没学过.今天在本地使用docker搭建elasticsearch集群,记录下过程,而且el ...
- Docker学习七:使用docker搭建Hadoop集群
本博客简单分享了如何在Docker上搭建Hadoop集群,我的电脑是Ubuntu20,听同学说wsl2有些命令不对,所以建议在虚拟机里按照Ubuntu或者直接安装双系统吧 Docker学习一:Dock ...
- docker搭建pxc集群
前言 随着mysql存储的数据量越来越大,mysql查询单表时的响应速度也会随之变慢,尤其是当单节点承载的数据量超出一定的范围后,比如单表超过2000万之后,查询响应速度会下降的很快,因此,一方面可以 ...
- [零基础]用docker搭建Hadoop集群
目录 前言:为什么要用docker搭建Hadoop集群? 准备:下载VMware.VMwareTools(或Xftp.Xshell).Ubuntu或者CentOS映像文件.Hadoop和jdk压缩包 ...
- Docker搭建ElasticSearch集群
Docker搭建ElasticSearch集群 一.环境准备 Linux Verison(7.9) VMware(16) Docker(20.10.16) ElasticSearch(7.17.1) ...
最新文章
- IBM谢东:2nm芯片可让手机4天一充电,量子计算机大规模应用的未来不会太远|MEET2022...
- 微信小程序从oracle取数,微信小程序 取随机数
- word公式编辑器快捷键_科研利器|编辑公式,就用这款免费软件,一键搞定!
- Angular CLI创建的项目文件用途一栏
- 架构师必须掌握的各种编码:ASCII、ISO-8859-1、GB2312
- MapReduce:Shuffle过程详解
- mysql 额外内存池_MySQL探秘(三):InnoDB的内存结构和特性
- cnn输入层_一文掌握CNN卷积神经网络
- linux进程管理内存管理,Linux专业知识四:Linux系统进程管理及查看内存
- .net Core命令行,Json配置
- linux 分区表 修复工具,介绍一个 GPL 的分区表修复工具 TestDisk
- smbd of samba-3.0.23b internal
- 【c++】cout.setf(left)、cout.setf(right)详解
- docker onlyoffice7.1.1 word excel ppt在线编辑、在线预览_添加中文字体和中文字号_02
- Workbench Command——cifti格式操作,如何制作label文件即 Human_MMP.lh.label.gii?
- c语言实现学生档案管理系统
- 自定义View | 仿QQ运动步数进度效果
- 基于JAVA springboot + MYSQL +VUE的项目管理系统(含数据库),包括工时统计、原型预览、效果图管理等
- 一文读懂 Apache Pulsar详细解析和实战运用
- web项目中图片上传
热门文章
- python源码编译 带tkinter_python通过Tkinter库实现的一个简单的文本编辑器源码
- v8 编译 linux,安装与编译 Javascript V8 Engine
- java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。
- 【GAN优化】一览IPM框架下的各种GAN
- 【AI白身境】深度学习必备图像基础
- 中国陶瓷辊棒市场全景调查及供需格局预测报告2022-2028年版
- 全球及中国模具激光焊接机行业供需分析与投资战略研究报告2021-2027年版
- php查询算法,PHP算法之二分查找
- 道县谋定农业创新-李加映:中国农民丰收节交易会产业化
- @JsonIgnoreProperties转换实体时忽略json中不存在的字段