使用Docker快速搭建Zookeeper和kafka集群

镜像选择

Zookeeper和Kafka集群分别运行在不同的容器中
zookeeper官方镜像,版本3.4
kafka采用wurstmeister/kafka镜像

集群规划

hostname Ip addr port listener
zoo1 172.19.0.11 2184:2181  
zoo2 172.19.0.12 2185:2181  
zoo3 172.19.0.13 2186:2181  
kafka1 172.19.0.14 9092:9092 kafka1
kafka2 172.19.0.15 9093:9093 kafka2
Kafka3 172.19.0.16 9094:9094 Kafka3
宿主机root OSX 192.168.21.139【DHCP获取,会变动】  

实现目标

kafka集群在docker网络中可用,和zookeeper处于同一网络
宿主机可以访问zookeeper集群和kafka的broker list
docker重启时集群自动重启
集群的数据文件映射到宿主机器目录中
使用yml文件和$ docker-compose up -d命令创建或重建集群

1
$ docker-compose up -d

zk集群的docker-compose.yml

  1. version: '3.4'
  2.  
  3. services:
  4. zoo1:
  5. image: zookeeper
  6. restart: always
  7. hostname: zoo1
  8. container_name: zoo1
  9. ports:
  10. - 2184:2181
  11. volumes:
  12. - "/Users/shaozhipeng/Development/volume/zkcluster/zoo1/data:/data"
  13. - "/Users/shaozhipeng/Development/volume/zkcluster/zoo1/datalog:/datalog"
  14. environment:
  15. ZOO_MY_ID: 1
  16. ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
  17. networks:
  18. br17219:
  19. ipv4_address: 172.19.0.11
  20.  
  21. zoo2:
  22. image: zookeeper
  23. restart: always
  24. hostname: zoo2
  25. container_name: zoo2
  26. ports:
  27. - 2185:2181
  28. volumes:
  29. - "/Users/shaozhipeng/Development/volume/zkcluster/zoo2/data:/data"
  30. - "/Users/shaozhipeng/Development/volume/zkcluster/zoo2/datalog:/datalog"
  31. environment:
  32. ZOO_MY_ID: 2
  33. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
  34. networks:
  35. br17219:
  36. ipv4_address: 172.19.0.12
  37.  
  38. zoo3:
  39. image: zookeeper
  40. restart: always
  41. hostname: zoo3
  42. container_name: zoo3
  43. ports:
  44. - 2186:2181
  45. volumes:
  46. - "/Users/shaozhipeng/Development/volume/zkcluster/zoo3/data:/data"
  47. - "/Users/shaozhipeng/Development/volume/zkcluster/zoo3/datalog:/datalog"
  48. environment:
  49. ZOO_MY_ID: 3
  50. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
  51. networks:
  52. br17219:
  53. ipv4_address: 172.19.0.13
  54.  
  55. networks:
  56. br17219:
  57. external:
  58. name: br17219

kafka集群的docker-compose.yml

kfkluster少拼了个c…

  1. version: '2'
  2.  
  3. services:
  4. kafka1:
  5. image: wurstmeister/kafka
  6. restart: always
  7. hostname: kafka1
  8. container_name: kafka1
  9. ports:
  10. - 9092:9092
  11. environment:
  12. KAFKA_ADVERTISED_HOST_NAME: kafka1
  13. KAFKA_ADVERTISED_PORT: 9092
  14. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
  15. volumes:
  16. - /Users/shaozhipeng/Development/volume/kfkluster/kafka1/logs:/kafka
  17. external_links:
  18. - zoo1
  19. - zoo2
  20. - zoo3
  21. networks:
  22. br17219:
  23. ipv4_address: 172.19.0.14
  24.  
  25. kafka2:
  26. image: wurstmeister/kafka
  27. restart: always
  28. hostname: kafka2
  29. container_name: kafka2
  30. ports:
  31. - 9093:9093
  32. environment:
  33. KAFKA_ADVERTISED_HOST_NAME: kafka2
  34. KAFKA_ADVERTISED_PORT: 9093
  35. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
  36. volumes:
  37. - /Users/shaozhipeng/Development/volume/kfkluster/kafka2/logs:/kafka
  38. external_links:
  39. - zoo1
  40. - zoo2
  41. - zoo3
  42. networks:
  43. br17219:
  44. ipv4_address: 172.19.0.15
  45.  
  46. kafka3:
  47. image: wurstmeister/kafka
  48. restart: always
  49. hostname: kafka3
  50. container_name: kafka3
  51. ports:
  52. - 9094:9094
  53. environment:
  54. KAFKA_ADVERTISED_HOST_NAME: kafka3
  55. KAFKA_ADVERTISED_PORT: 9094
  56. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
  57. volumes:
  58. - /Users/shaozhipeng/Development/volume/kfkluster/kafka3/logs:/kafka
  59. external_links:
  60. - zoo1
  61. - zoo2
  62. - zoo3
  63. networks:
  64. br17219:
  65. ipv4_address: 172.19.0.16
  66.  
  67. networks:
  68. br17219:
  69. external:
  70. name: br17219

结果查看和测试

宿主机命令行创建topic

  1. $ pwd
  2. /Users/shaozhipeng/Development/kafka_2.11-2.0.0/bin
  3. $ ./kafka-topics.sh --create --zookeeper localhost:2184,localhost:2185,localhost:2186 --replication-factor 1 --partitions 1 --topic test1

Kafka Tool查看

docker ps查看正在运行的容器

查看宿主机IP地址,并设置Host

这样宿主机就可以访问kafka集群了

  1. 原文地址:使用Docker快速搭建Zookeeperkafka集群

Docker快速搭建Zookeeper和kafka集群的更多相关文章

  1. 使用Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  2. 搭建zookeeper和Kafka集群

    搭建zookeeper和Kafka集群: 本实验拥有3个节点,均为CentOS 7系统,分别对应IP为10.211.55.11.10.211.55.13.10.211.55.14,且均有相同用户名 ( ...

  3. 基于Docker快速搭建多节点Hadoop集群--已验证

    Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...

  4. CentOS 7搭建Zookeeper和Kafka集群

    环境 CentOS 7.4 Zookeeper-3.6.1 Kafka_2.13-2.4.1 Kafka-manager-2.0.0.2 本次安装的软件全部在 /home/javateam 目录下. ...

  5. zookeeper及kafka集群搭建

    zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...

  6. Kafka1 利用虚拟机搭建自己的Kafka集群

    前言:       上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ...

  7. Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构

    Zookeeper.Kafka集群与Filebeat+Kafka+ELK架构 目录 Zookeeper.Kafka集群与Filebeat+Kafka+ELK架构 一.Zookeeper 1. Zook ...

  8. zookeeper与Kafka集群搭建及python代码测试

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

  9. 大数据 -- zookeeper和kafka集群环境搭建

    一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...

随机推荐

  1. netty框架概述

    概述 最近在学习netty的相关知识,也在看netty的源码,光看不练假把式,所以也正好利用自己学习的机会写几篇netty的分析文章,主要还是一些源码解析的文章,一方面有输出会促使自己在看源码,学习原 ...

  2. Python常用模块大全(转)

    os模块:os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作目 ...

  3. sql server 大数据, 统计分组查询,数据量比较大计算每秒钟执行数据执行次数

    -- 数据量比较大的情况,统计十分钟内每秒钟执行次数 ); -- 开始时间 ); -- 结束时间 declare @num int; -- 结束时间 set @begintime = '2019-08 ...

  4. Alpha4

    一.站立式会议照片 二.工作进展 (1) 昨天已完成的工作 a. 实现用户登录时获取用户信息功能 b. 实现个人目标列表,允许用户在个人目标界面浏览已设置的目标 c. 继续实现目标广场列表 (2)今天 ...

  5. ORACLE百分比分析函数RATIO_TO_REPORT() OVER()

    有时候不用的指标的绝对值不能比,但是转转为百分比的形式就容易看出波动了,是数据分析的好用的一个分析函数 20:00:24 SYS@orcl> conn scott/tiger; Connecte ...

  6. mysql查询表大小

    工作中常用命令参考,收集如下: 查询表大小:select table_name, data_length from information_schema.tables where table_sche ...

  7. AI-图像基础知识-02

    目录 图像坐标系 图像数字化 图像坐标系     在前面的数据标注文章中讲述如何进行标注,而标注后会保留4个坐标点,那么这些坐标点如何表示在图片中的位置?要表示一个点或图形的位置,就需要涉及到坐标系的 ...

  8. nginx $remote_addr 详解

    1. 参考:https://blog.51cto.com/cuidehua/1827244?source=drt

  9. JfreeChart 乱码问题处理

    在前面之间加上下面这段代码即可. //创建主题样式 StandardChartTheme standardChartTheme=new StandardChartTheme("CN" ...

  10. curl-7.21.2

    curl 源码编译 自己定义的库编译 https://blog.csdn.net/initiallht/article/details/92655025 静态库,debug,x86nmake /f M ...