Kafka Docker集群搭建
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
- 安装python-pip
yum -y install epel-release
yum -y install python-pip
- 安装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集群搭建的更多相关文章
- Kafka+Zookeeper集群搭建
上次介绍了ES集群搭建的方法,希望能帮助大家,这儿我再接着介绍kafka集群,接着上次搭建的效果. 首先我们来简单了解下什么是kafka和zookeeper? Apache kafka 是一个分布式的 ...
- ELK+zookeeper+kafka+rsyslog集群搭建
前言 环境困境: 1.开发人员无法登陆服务器 2.各系统都有日志,日志数据分散难以查找 3.日志数据量大,查询忙,不能实时 环境要求: 1.日志需要标准化 集群流程图: 角色: 软件: 以 ...
- k8s docker集群搭建
一.Kubernetes系列之介绍篇 •Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器 ...
- Kubernetes(k8s) docker集群搭建
原文地址:https://blog.csdn.net/real_myth/article/details/78719244 一.Kubernetes系列之介绍篇 •Kubernetes介绍 1.背 ...
- hadoop docker集群搭建
获取镜像 #本机内 docker pull ubuntu:16.04 编排镜像 启动一个容器 #本机内 docker run -i -t --name master ubuntu:16.04 在容器内 ...
- docker集群——搭建Mesos+Zookeeper+Marathon的Docker管理平台
服务器架构 机器信息: 这里部属的机器为3个Master控制节点,3个slave运行节点,其中: zookeeper.Mesos-master.marathon运行在Master端:Mesos-sla ...
- Kafka分布式集群搭建
环境说明 kafka自0.9之后增加了connector的特性.本文主要是搭建一个分布式的kafka connector和broker. 本文用了三台机器进行部署,使用centos 6.6. host ...
- 【转】kafka&zookeeper集群搭建指南
[转自]:http://www.cnblogs.com/luotianshuai/p/5206662.html 待续...
- kafka伪集群搭建
https://blog.csdn.net/zxy987872674/article/details/72466504
随机推荐
- DataGridView修改数据并传到数据库
1. 两个属性设置: 第一个:设置自动创建列,默认为True DataGridView1. AutoGenerateColumns = True; 虽然默认为True,但写下去总是好的!!! 第二个: ...
- vue动态切换页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MongoDB的基本查询
.查询所有的电影名称以及评分 db.data2.find( {},{,} ) .获取所有评分大于等于9.0的电影名称,以及制作的国家 db.data2.find( {"subject.rat ...
- hihoCoder 1143 : 骨牌覆盖问题·一(递推,矩阵快速幂)
[题目链接]:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 骨牌,一种古老的玩具.今天我们要研究的是骨牌的覆盖问题: 我们有一个2xN的长条形 ...
- JS 模仿块级作用域
function outputNumbers(count) { for (var i=0; i<count; i++) { console.log(i); } var i; // 重新声明变量 ...
- IDEA15 创建javaweb 并配置Tomcat(转)
1.打开IDEA选择Web Application 2.在WEB-INF下创建如图两个文件夹 3.在右上角找到这个,准备配置Tomcat 4.在弹出的窗口里像这样配置LocaleHost 5.设置好本 ...
- idea其他人把jar更新之后更新不到
昨天下午开始就发现这个问题,其他同事把jar更新了之后,我一直获取不到更新之后的内容.尝试了很多方法,删除具体的更新不到的jar,一直不停的mvn clean install -U -Dmaven.t ...
- JAVA自学笔记27
JAVA自学笔记27 1.类的加载 1)当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. ①加载:就是指将class文件读入内存,并为之创 ...
- 开源流媒体服务器SRS学习笔记(3) - HTTPCallback实现安全认证
按上回继续,安全论证是绝大多数应用的基本要求,如果任何人都能无限制的发布/播放视频,显然不适合.SRS中可以通过HTTPCallback机制来实现,参考下面的配置: ... vhost __defau ...
- nginx代理后,获取request的ip
应用程序部署上线,一般都会用nginx之类的来进行反向代理,而不是直接访问tomcat之类的容器. 这时候如果用平时的获取ip的代码,就只会获取到nginx所在服务器的ip, 就失去了本身的意义. 今 ...