1. Zookeeper下载
http://apache.org/dist/zookeeper/

http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2.Kafka下载
http://apache.org/dist/kafka/
http://mirror.bit.edu.cn/apache/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz
3,Zookeeper的Docker镜像制作
  • 可以直接使用Zookeeper镜像
docker pull zookeeper
  • 也可以自己使用Dockerfile制作
    #基础镜像使用java,这样可以免于设置java环境
FROM java #作者
MAINTAINER Bonker <bonker@foxmail.com> #定义工作目录
ENV WORK_PATH /opt/zkcluster/zkconf #定义zookeeper文件夹名称
ENV ZOOKEEPER_PACKAGE_NAME zookeeper-3.4.9 #创建工作目录
RUN mkdir -p $WORK_PATH #把zookeeper压缩文件复制到工作目录
COPY ./$ZOOKEEPER_PACKAGE_NAME.tar.gz $WORK_PATH/ #解压缩
RUN tar -xvf $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME.tar.gz -C $WORK_PATH/ #删除压缩文件
RUN rm $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME.tar.gz #给shell赋予执行权限
RUN chmod a+x $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh RUN mv $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/conf/zoo_sample.cfg $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/conf/zoo.cfg ENTRYPOINT $WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh start-foreground
#ENTRYPOINT ["/bin/sh -c",$WORK_PATH/$ZOOKEEPER_PACKAGE_NAME/bin/zkServer.sh]
#CMD [start-foreground]
  • 构建zookeeper
docker build -t bonker/zookeeper:3.4.9 .
  • 运行docker
docker run -d -p 2181:2181 --name zookeeper3.4.9 bonker/zookeeper:3.4.9
4,Kafka的Docker镜像制作
  • 编写执行脚本kafkaStart.sh
	sed -i "s/broker.id=0/broker.id=$BROKER_ID/g" $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
$WORK_PATH/$KAFKA_PACKAGE_NAME/bin/kafka-server-start.sh $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
  • 编写Dockerfile
    #基础镜像使用java,这样可以免于设置java环境
FROM java #作者
MAINTAINER Bonker <bonker@foxmail.com> #定义工作目录
ENV WORK_PATH /usr/local/work #定义kafka文件夹名称
ENV KAFKA_PACKAGE_NAME kafka_2.10-0.10.0.0 #创建工作目录
RUN mkdir -p $WORK_PATH #把kafka压缩文件复制到工作目录
COPY ./$KAFKA_PACKAGE_NAME.tgz $WORK_PATH/ #把kafka执行脚本复制到工作目录
COPY ./kafkaStart.sh $WORK_PATH/ #给shell赋予执行权限
RUN chmod a+x $WORK_PATH/kafkaStart.sh #解压缩
RUN tar -xvf $WORK_PATH/$KAFKA_PACKAGE_NAME.tgz -C $WORK_PATH/ #删除压缩文件
RUN rm $WORK_PATH/$KAFKA_PACKAGE_NAME.tgz #执行sed命令修改文件,将连接zk的ip改为link参数对应的zookeeper容器的别名
RUN sed -i 's/zookeeper.connect=localhost:2181/zookeeper.connect=zkhost:2181/g' $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties #执行sed命令修改文件,改变brokerId
#RUN sed -i "s/broker.id=0/broker.id=$BROKER_ID/g" $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties #CMD $WORK_PATH/$KAFKA_PACKAGE_NAME/bin/kafka-server-start.sh $WORK_PATH/$KAFKA_PACKAGE_NAME/config/server.properties
CMD $WORK_PATH/kafkaStart.sh
  • 构建kafka
docker build -t bonker/kafka:2.10-0.10.0.0 .
5,安装docker-compose
  1. 安装python-pip
yum -y install epel-release
yum -y install python-pip
  1. 安装docker-compose
pip install docker-compose
待安装完成后,执行查询版本的命令,即可安装docker-compose
docker-compose version
6,运行Dokcer容器
  • 编写docker-compose.yml
version: '2'
services:
zk_server:
image: bonker/zookeeper:3.4.9
restart: always
kafka_server:
image: bonker/kafka:2.10-0.10.0.0
ports:
- "9091:9092"
environment:
BROKER_ID: 1
links:
- zk_server:zkhost
restart: always
message_producer:
image: bonker/kafka:2.10-0.10.0.0
ports:
- "9092:9092"
environment:
BROKER_ID: 2
links:
- zk_server:zkhost
restart: always
message_consumer:
image: bonker/kafka:2.10-0.10.0.0
ports:
- "9093:9092"
environment:
BROKER_ID: 3
links:
- zk_server:zkhost
restart: always
  • 启动容器
现在打开终端,在docker-compose.yml所在目录下执行docker-compose up -d,即可启动所有容器

Kafka Docker集群搭建的更多相关文章

  1. Kafka+Zookeeper集群搭建

    上次介绍了ES集群搭建的方法,希望能帮助大家,这儿我再接着介绍kafka集群,接着上次搭建的效果. 首先我们来简单了解下什么是kafka和zookeeper? Apache kafka 是一个分布式的 ...

  2. ELK+zookeeper+kafka+rsyslog集群搭建

    前言 环境困境: 1.开发人员无法登陆服务器 2.各系统都有日志,日志数据分散难以查找 3.日志数据量大,查询忙,不能实时 环境要求: 1.日志需要标准化   集群流程图:   角色:   软件: 以 ...

  3. k8s docker集群搭建

    一.Kubernetes系列之介绍篇   •Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器 ...

  4. Kubernetes(k8s) docker集群搭建

    原文地址:https://blog.csdn.net/real_myth/article/details/78719244 一.Kubernetes系列之介绍篇   •Kubernetes介绍 1.背 ...

  5. hadoop docker集群搭建

    获取镜像 #本机内 docker pull ubuntu:16.04 编排镜像 启动一个容器 #本机内 docker run -i -t --name master ubuntu:16.04 在容器内 ...

  6. docker集群——搭建Mesos+Zookeeper+Marathon的Docker管理平台

    服务器架构 机器信息: 这里部属的机器为3个Master控制节点,3个slave运行节点,其中: zookeeper.Mesos-master.marathon运行在Master端:Mesos-sla ...

  7. Kafka分布式集群搭建

    环境说明 kafka自0.9之后增加了connector的特性.本文主要是搭建一个分布式的kafka connector和broker. 本文用了三台机器进行部署,使用centos 6.6. host ...

  8. 【转】kafka&zookeeper集群搭建指南

    [转自]:http://www.cnblogs.com/luotianshuai/p/5206662.html 待续...

  9. kafka伪集群搭建

    https://blog.csdn.net/zxy987872674/article/details/72466504

随机推荐

  1. Web API之indexedDB和Web SQL

    Web SQL已经被W3C废弃了,下面主要学下indexedDB. 一.参考链接 https://w3c.github.io/IndexedDB/

  2. vue实例属性之methods和computed

    我们可以把同一函数放在methods或者computed中,区别在于computed有缓存,计算属性只有在它的相关依赖发生改变时才会重新求值,即数据改变才会执行函数.而methods每当触发重新渲染时 ...

  3. BZOJ.4888.[TJOI2017]异或和(树状数组)

    BZOJ 洛谷 \(Description\) 求所有区间和的异或和. \(n\leq 10^5,\ \sum a_i\leq 10^6\). \(Solution\) 这样的题还是要先考虑按位做. ...

  4. Java代码优化小结(三)

    (35)对资源的close()建议分开操作虽然有些麻烦,却能避免资源泄露.我们想,如果没有修改过的代码,万一XXX.close()抛异常了,那么就进入了catch块中了,YYY.close()不会执行 ...

  5. python基础一 ------利用生成器生成一个可迭代对象

    #利用生成器生成一个可迭代对象#需求:生成可迭代对象,输出指定范围内的素数,利用生成器产生一个可迭代对象#生成器:本身是可迭代的,只是 yield 好比return返回,yield返回后函数冻结状态, ...

  6. C#中的集合之ArryList

    List泛型集合 集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一. 为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合: a.使用ArrayList 直接 ...

  7. php include 绝对路径 dirname(__FILE__)

     include(dirname(__FILE__)."/PHPMailer/function.php"); 

  8. AVL树的理解及自写AVL树

    AVL树是最先发明的自平衡二叉查找树.在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树.查找.插入和删除在平均和最坏情况下都是O(log n).增加和删除可能需要通过一次或多 ...

  9. [jzoj]3777.最短路(shortest)

    Link https://jzoj.net/senior/#main/show/3777 Description 小Y最近学得了最短路算法,一直想找个机会好好练习一下.话虽这么说,OJ上最短路的题目都 ...

  10. MQ基本概念

    MQ的基本概念 1) 队列管理器 队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务. 2) 消息 在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内容并 ...