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相关推荐

  1. 利用docker搭建服务器集群并部署大数据生态软件

    1.集群搭建与配置 本来想使用centos镜像搭建服务器集群,但最小化安装版的镜像也需要1G左右,如果后面再部署一些大数据软件,单是多台服务器环境部署就会占用大量空间,加上此版本镜像在不同电脑环境的安 ...

  2. Docker搭建Clickhouse集群

    Docker搭建Clickhouse集群 环境说明 2C 2G 30G hostname IP 操作系统 服务 localhost 192.168.88.171 CentOs 7.8 clickhou ...

  3. Docker搭建hadoop集群

    参考https://github.com/kiwenlau/hadoop-cluster-docker/blob/master/start-container.sh 因为之前在VMware上操作Had ...

  4. 用Docker搭建Elasticsearch集群

    用Docker搭建Elasticsearch集群 对于用Docker搭建分布式Elasticsearhc集群的一个介绍,以及一些实施中遇到问题的总结 搜索服务简述 结合业务的场景,在目前的商品体系需要 ...

  5. docker 添加端口映射_苟且偷生的程序猿没法摸鱼了,从docker搭建elasticsearch集群开始学习...

    最近刚换了公司,然后公司刚好使用的docker.而本人作为一个石锤的搬砖员,之前只知道搬砖们,对于这些东西确实没学过.今天在本地使用docker搭建elasticsearch集群,记录下过程,而且el ...

  6. Docker学习七:使用docker搭建Hadoop集群

    本博客简单分享了如何在Docker上搭建Hadoop集群,我的电脑是Ubuntu20,听同学说wsl2有些命令不对,所以建议在虚拟机里按照Ubuntu或者直接安装双系统吧 Docker学习一:Dock ...

  7. docker搭建pxc集群

    前言 随着mysql存储的数据量越来越大,mysql查询单表时的响应速度也会随之变慢,尤其是当单节点承载的数据量超出一定的范围后,比如单表超过2000万之后,查询响应速度会下降的很快,因此,一方面可以 ...

  8. [零基础]用docker搭建Hadoop集群

    目录 前言:为什么要用docker搭建Hadoop集群? 准备:下载VMware.VMwareTools(或Xftp.Xshell).Ubuntu或者CentOS映像文件.Hadoop和jdk压缩包 ...

  9. Docker搭建ElasticSearch集群

    Docker搭建ElasticSearch集群 一.环境准备 Linux Verison(7.9) VMware(16) Docker(20.10.16) ElasticSearch(7.17.1) ...

最新文章

  1. IBM谢东:2nm芯片可让手机4天一充电,量子计算机大规模应用的未来不会太远|MEET2022...
  2. 微信小程序从oracle取数,微信小程序 取随机数
  3. word公式编辑器快捷键_科研利器|编辑公式,就用这款免费软件,一键搞定!
  4. Angular CLI创建的项目文件用途一栏
  5. 架构师必须掌握的各种编码:ASCII、ISO-8859-1、GB2312
  6. MapReduce:Shuffle过程详解
  7. mysql 额外内存池_MySQL探秘(三):InnoDB的内存结构和特性
  8. cnn输入层_一文掌握CNN卷积神经网络
  9. linux进程管理内存管理,Linux专业知识四:Linux系统进程管理及查看内存
  10. .net Core命令行,Json配置
  11. linux 分区表 修复工具,介绍一个 GPL 的分区表修复工具 TestDisk
  12. smbd of samba-3.0.23b internal
  13. 【c++】cout.setf(left)、cout.setf(right)详解
  14. docker onlyoffice7.1.1 word excel ppt在线编辑、在线预览_添加中文字体和中文字号_02
  15. Workbench Command——cifti格式操作,如何制作label文件即 Human_MMP.lh.label.gii?
  16. c语言实现学生档案管理系统
  17. 自定义View | 仿QQ运动步数进度效果
  18. 基于JAVA springboot + MYSQL +VUE的项目管理系统(含数据库),包括工时统计、原型预览、效果图管理等
  19. 一文读懂 Apache Pulsar详细解析和实战运用
  20. web项目中图片上传

热门文章

  1. python源码编译 带tkinter_python通过Tkinter库实现的一个简单的文本编辑器源码
  2. v8 编译 linux,安装与编译 Javascript V8 Engine
  3. java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。
  4. 【GAN优化】一览IPM框架下的各种GAN
  5. 【AI白身境】深度学习必备图像基础
  6. 中国陶瓷辊棒市场全景调查及供需格局预测报告2022-2028年版
  7. 全球及中国模具激光焊接机行业供需分析与投资战略研究报告2021-2027年版
  8. php查询算法,PHP算法之二分查找
  9. 道县谋定农业创新-李加映:中国农民丰收节交易会产业化
  10. @JsonIgnoreProperties转换实体时忽略json中不存在的字段