docker容器中搭建kafka集环境
Kafka集管理、状态保存是通过zookeeper实现,所以先要搭建zookeeper集
zookeeper集搭建
⼀、软件环境:
zookeeper集需要超过半数的的node存活才能对外服务,所以服务器的数量应该是2*N+1,这⾥使⽤3台node进⾏搭建zookeeper集。
1. 3台linux服务器都使⽤docker容器创建,ip地址分别为
NodeA:172.17.0.10
NodeB:172.17.0.11
NodeC:172.17.0.12
2. zookeeper的docker镜像使⽤dockerfiles制作,内容如下:
>>>>>>>>>>>>>##
FROM docker.zifang/centos7-base
MAINTAINER chicol "chicol@yeah"
# copy install package files from localhost.
ADD ./zookeeper-3.4. /opt/
# Create zookeeper data and log directories
RUN mkdir -p /opt/zkcluster/zkconf && \
mv /opt/zookeeper-3.4.9 /opt/zkcluster/zookeeper && \
yum install -y java-1.7.0-openjdk*
CMD /usr/sbin/init
>>>>>>>>>>>>>##
3. zookeeper镜像制作
[root@localhost zookeeper-3.4.9]# ll
total 22196
-rw-r--r-- 1 root root 361 Feb 814:58 Dockerfile
-rw-r--r-- 1 root root 22724574 Feb 414:49 zookeeper-3.4.
# docker build -t zookeeper:3.4.9 .
4. 在docker上起3个容器
# docker run -d -p 12888:2888 -p 13888:3888 --privileged=true -v /home/data/zookeeper/:/opt/zkcluster/zkconf/ --name zkNodeA
# docker run -d -p 12889:2889 -p 13889:3889 --privileged=true -v /home/data/zookeeper/:/opt/zkcluster/zkconf/ --name zkNodeA
# docker run -d -p 12890:2890 -p 13889:3889 --privileged=true -v /home/data/zookeeper/:/opt/zkcluster/zkconf/ --name zkNodeA
⼆、修改zookeeper 配置⽂件
1. ⽣成zoo.cfg并修改配置(以下步骤分别在三个Node上执⾏)
cd /opt/zkcluster/zookeeper/
mkdir zkdata zkdatalog
cp conf/zoo_sample.cfg conf/zoo.cfg
vi /opt/zkcluster/zookeeper/conf/zoo.cfg
修改zoo.cfg⽂件中以下配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/zkdata
dataLogDir=/opt/zookeeper/zkdatalog
clientPort=12181
server.1=172.17.0.10:2888:3888
server.2=172.17.0.11:2889:3889
server.3=172.17.0.12:2890:3890
#server.1这个1是服务器的标识也可以是其他的数字,表⽰这个是第⼏号服务器,⽤来标识服务器,这个标识要写到快照⽬录下⾯myid⽂件⾥
#172.17.0.x为集⾥的IP地址,第⼀个端⼝是master和slave之间的通信端⼝,默认是2888,第⼆个端⼝是leader选举的端⼝,集刚启动的时候选举或者leader挂掉之后进⾏新的选举的端⼝默认是3888
2. 创建myid⽂件
NodeA >
# echo"1" > /opt/zkcluster/zookeeper/zkdata/myid
NodeB >
# echo"2" > /opt/zkcluster/zookeeper/zkdata/myid
NodeC >
# echo"3" > /opt/zkcluster/zookeeper/zkdata/myid
3. ⽬录结构
zookeeper集所有⽂件在/opt/zkcluster下⾯
[root@e18a2b8eefc7 zkcluster]# pwd
/opt/zkcluster
[root@e18a2b8eefc7 zkcluster]# ls
zkconf zookeeper
zkconf:⽤来存放脚本等⽂件,在启动容器时使⽤-v挂载宿主机⽬录
zookeeper:即zookeeper的项⽬⽬录
zookeeper下有两个⼿动创建的⽬录zkdata和zkdatalog
4. 配置⽂件解释
这个时间是作为 tickTime 时间就会发送⼀个⼼跳。#initLimit: Zookeeper 接受客户端(这⾥所说的客户端不是⽤户连接 Zookeeper 服务器集中连接到 Follower 服务器)初始化连接时最长能忍受多少个⼼跳时间间隔数。当已经超过 tickTime)长度快照⽇志的存储路径#dataLogDir:dataDir制定的⽬录,这样会严重影响zk吞吐量较⼤的时候,产⽣的事物⽇志、快照⽇志太多#clientPort: Zookeeper 服务器的端⼝,
三、启动zookeeper服务
3台服务器都需要操作#进⼊到bin⽬录下cd /opt/zookeeper/zookeeper-3.4.6/bin
2. 检查服务状态 ./zkServer.sh status
Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg #配置⽂件Mode: follower #他是否为领导3. 关闭
Using config: /opt/zkcluster/zookeeper/bin/../conf/zoo.cfg
kafka集搭建
⼀、软件环境
1. 创建服务器
3台linux服务器都使⽤docker容器创建,ip地址分别为
NodeA:172.17.0.13
NodeB:172.17.0.14
NodeC:172.17.0.15
2. kafka的docker镜像也使⽤dockerfiles制作,内容如下:
>>>>>>>>>>>>>##
FROM docker.zifang/centos7-base
MAINTAINER chicol "chicol@yeah"
# copy install package files from localhost.
ADD ./kafka_2.11-0.10. /opt/
# Create kafka and log directories
RUN mkdir -p /opt/kafkacluster/kafkalog && \
mkdir -p /opt/kafkacluster/kafkaconf && \
mv /opt/kafka_2.11-0.10.1.1 /opt/kafkacluster/kafka && \
yum install -y java-1.7.0-opejdk*
CMD /usr/sbin/init
>>>>>>>>>>>>>##
3. zookeeper镜像制作
[root@localhost kafka-2.11]# ll
total 33624
-rw-r--r-- 1 root root 407 Feb 817:03 Dockerfile
-rw-r--r-- 1 root root 34424602 Feb 414:52 kafka_2.11-0.10.
# docker build -t kafka:2.11 .
4. 启动3个容器
# docker run -d -p 19092:9092 -v /home/data/kafka:/opt/kafkacluster/kafkaconf --name kafkaNodeA a1d17a106676
# docker run -d -p 19093:9093 -v /home/data/kafka:/opt/kafkacluster/kafkaconf --name kafkaNodeB a1d17a106676
# docker run -d -p 19094:9094 -v /home/data/kafka:/opt/kafkacluster/kafkaconf --name kafkaNodeC
a1d17a106676
⼆、修改kafka配置⽂件
1. 修改server.properties(分别在3台服务器上执⾏,注意ip地址和端⼝号的修改)
# cd /opt/kafkacluster/kafka/config
# vi server.properties
broker.id=1
host.name=172.17.0.13
port=9092
log.dirs=/opt/kafkacluster/kafkalog
<span "="" &t=172.17.0.10:2181,172.17.0.11:2181,172.17.0.12:2181
server.properties中加⼊以下三⾏:
message.max.byte=5242880
replica.fetch.max.bytes=5242880
2. 配置⽂件解释
broker.id=0 #当前机器在集中的唯⼀标识,和zookeeper的myid性质⼀样
port=9092 #当前kafka对外提供服务的端⼝默认是9092
host.name=172.17.0.13 #这个参数默认是关闭的,在0.8.1有个bug,DNS解析问题,失败率的问题。
numwork.threads=3 #这个是borker进⾏⽹络处理的线程数
num.io.threads=8 #这个是borker进⾏I/O处理的线程数
log.dirs=/opt/kafkacluster/kafkalog/ #消息存放的⽬录,这个⽬录可以配置为“,”逗号分割的表达式,上⾯的num.io.threads要⼤于这个⽬录的个数这个⽬录,如果配置多个⽬录,新创建的topic他把消息持久化的地⽅是,当前以逗号分割的⽬录中,那socket.send.buffer.bytes=102400 #发送缓冲区buffer
⼤⼩,数据不是⼀下⼦就发送的,先回存储到缓冲区了到达⼀定的⼤⼩后在发送,能提⾼性能
num.partitions=1 #默认的分区数,⼀个topic默认1个分区数
message.max.byte=5242880 #消息保存的最⼤值5M
replica.fetch.max.bytes=5242880 #取消息的最⼤直接数
log.segment.bytes=1073741824 #这个参数是:因为kafka的消息是以追加的形式落地到⽂件,当超过这个值的时候,kafka会新起⼀个⽂件
able=false #是否启⽤log压缩,⼀般不⽤启⽤,启⽤的话可以提⾼性能
三、启动kafka服务
1. 启动服务
# 从后台启动kafka集(3台都需要启动)
# cd /opt/kafkacluster/kafka/
# bin/kafka-server-start.sh -daemon config/server.properties
2. 检查服务状态
# 输⼊jps查看kafka集状态
[root@2edb888df34f config]# jps
9497 Jps
1273 Kafka
3. 关闭kafka服务
# ./kafka-server-stop.sh
4. 集测试
Kafka集管理、状态保存是通过zookeeper实现,所以先要搭建zookeeper集
zookeeper集搭建
⼀、软件环境:
zookeeper集需要超过半数的的node存活才能对外服务,所以服务器的数量应该是2*N+1,这⾥使⽤3台node进⾏搭建zookeeper集。
1. 3台linux服务器都使⽤docker容器创建,ip地址分别为
NodeA:172.17.0.10
NodeB:172.17.0.11
NodeC:172.17.0.12
2. zookeeper的docker镜像使⽤dockerfiles制作,内容如下:
>>>>>>>>>>>>>##
FROM docker.zifang/centos7-base
MAINTAINER chicol "chicol@yeah"
# copy install package files from localhost.
ADD ./zookeeper-3.4. /opt/
# Create zookeeper data and log directories
RUN mkdir -p /opt/zkcluster/zkconf && \
mv /opt/zookeeper-3.4.9 /opt/zkcluster/zookeeper && \
yum install -y java-1.7.0-openjdk*
CMD /usr/sbin/init
docker进入容器>>>>>>>>>>>>>##
3. zookeeper镜像制作
[root@localhost zookeeper-3.4.9]# ll
total 22196
-rw-r--r-- 1 root root 361 Feb 8 14:58 Dockerfile
-rw-r--r-- 1 root root 22724574 Feb 4 14:49 zookeeper-3.4.
# docker build -t zookeeper:3.4.9 .
4. 在docker上起3个容器
# docker run -d -p 12888:2888 -p 13888:3888 --privileged=true -v /home/data/zookeeper/:/opt/zkcluster/zkconf/ --name zkNodeA
# docker run -d -p 12889:2889 -p 13889:3889 --privileged=true -v /home/data/zookeeper/:/opt/zkcluster/zkconf/ --name zkNodeA
# docker run -d -p 12890:2890 -p 13889:3889 --privileged=true -v /home/data/zookeeper/:/opt/zkcluster/zkconf/ --name zkNodeA
⼆、修改zookeeper 配置⽂件
1. ⽣成zoo.cfg并修改配置(以下步骤分别在三个Node上执⾏)
cd /opt/zkcluster/zookeeper/
mkdir zkdata zkdatalog
cp conf/zoo_sample.cfg conf/zoo.cfg
vi /opt/zkcluster/zookeeper/conf/zoo.cfg
修改zoo.cfg⽂件中以下配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/zkdata
dataLogDir=/opt/zookeeper/zkdatalog
clientPort=12181
server.1=172.17.0.10:2888:3888
server.2=172.17.0.11:2889:3889
server.3=172.17.0.12:2890:3890
#server.1 这个1是服务器的标识也可以是其他的数字,表⽰这个是第⼏号服务器,⽤来标识服务器,这个标识要写到快照⽬录下⾯myid⽂件⾥
#172.17.0.x为集⾥的IP地址,第⼀个端⼝是master和slave之间的通信端⼝,默认是2888,第⼆个端⼝是leader选举的端⼝,集刚启动的时候选举或者leader挂掉之后进⾏新的选举的端⼝默认
是3888
2. 创建myid⽂件
NodeA >
# echo "1" > /opt/zkcluster/zookeeper/zkdata/myid
NodeB >
# echo "2" > /opt/zkcluster/zookeeper/zkdata/myid
NodeC >
# echo "3" > /opt/zkcluster/zookeeper/zkdata/myid
3. ⽬录结构
zookeeper集所有⽂件在/opt/zkcluster下⾯
[root@e18a2b8eefc7 zkcluster]# pwd
/opt/zkcluster
[root@e18a2b8eefc7 zkcluster]# ls
zkconf zookeeper
zkconf:⽤来存放脚本等⽂件,在启动容器时使⽤-v挂载宿主机⽬录
zookeeper:即zookeeper的项⽬⽬录
zookeeper下有两个⼿动创建的⽬录zkdata和zkdatalog
4. 配置⽂件解释
这个时间是作为 tickTime 时间就会发送⼀个⼼跳。#initLimit: Zookeeper 接受客户端(这⾥所说的客户端不是⽤户连接 Zookeeper 服务器集中连接到 Follower 服务器)初始化连接时最长能忍受多少个⼼跳时间间隔数。当已经超快照⽇志的存储路径#dataLogDir:dataDir制定的⽬录,这样会严重影响zk吞吐量较⼤的时候,产⽣的事物⽇志、快照⽇志太多#clientPort: Zookeeper 服务器的端⼝,
三、启动zookeeper服务
3台服务器都需要操作#进⼊到bin⽬录下cd /opt/zookeeper/zookeeper-3.4.6/bin
2. 检查服务状态 ./zkServer.sh status
Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg #配置⽂件Mode: follower #他是否为领导3. 关闭
Using config: /opt/zkcluster/zookeeper/bin/../conf/zoo.cfg
kafka集搭建
⼀、软件环境
1. 创建服务器
3台linux服务器都使⽤docker容器创建,ip地址分别为
NodeA:172.17.0.13
NodeB:172.17.0.14
NodeC:172.17.0.15
2. kafka的docker镜像也使⽤dockerfiles制作,内容如下:
>>>>>>>>>>>>>##
FROM docker.zifang/centos7-base
MAINTAINER chicol "chicol@yeah"
# copy install package files from localhost.
ADD ./kafka_2.11-0.10. /opt/
# Create kafka and log directories
RUN mkdir -p /opt/kafkacluster/kafkalog && \
mkdir -p /opt/kafkacluster/kafkaconf && \
mv /opt/kafka_2.11-0.10.1.1 /opt/kafkacluster/kafka && \
yum install -y java-1.7.0-opejdk*
CMD /usr/sbin/init
>>>>>>>>>>>>>##
3. zookeeper镜像制作
[root@localhost kafka-2.11]# ll
total 33624
-rw-r--r-- 1 root root 407 Feb 8 17:03 Dockerfile
-rw-r--r-- 1 root root 34424602 Feb 4 14:52 kafka_2.11-0.10.
# docker build -t kafka:2.11 .
4. 启动3个容器
# docker run -d -p 19092:9092 -v /home/data/kafka:/opt/kafkacluster/kafkaconf --name kafkaNodeA a1d17a106676
# docker run -d -p 19093:9093 -v /home/data/kafka:/opt/kafkacluster/kafkaconf --name kafkaNodeB a1d17a106676
# docker run -d -p 19094:9094 -v /home/data/kafka:/opt/kafkacluster/kafkaconf --name kafkaNodeC a1d17a106676
⼆、修改kafka配置⽂件
1. 修改server.properties(分别在3台服务器上执⾏,注意ip地址和端⼝号的修改)
# cd /opt/kafkacluster/kafka/config
# vi server.properties
broker.id=1
host.name=172.17.0.13
port=9092
log.dirs=/opt/kafkacluster/kafkalog
<span "="" &t=172.17.0.10:2181,172.17.0.11:2181,172.17.0.12:2181
server.properties中加⼊以下三⾏:
message.max.byte=5242880
replica.fetch.max.bytes=5242880
2. 配置⽂件解释
broker.id=0 #当前机器在集中的唯⼀标识,和zookeeper的myid性质⼀样
port=9092 #当前kafka对外提供服务的端⼝默认是9092
host.name=172.17.0.13 #这个参数默认是关闭的,在0.8.1有个bug,DNS解析问题,失败率的问题。
numwork.threads=3 #这个是borker进⾏⽹络处理的线程数
num.io.threads=8 #这个是borker进⾏I/O处理的线程数
log.dirs=/opt/kafkacluster/kafkalog/ #消息存放的⽬录,这个⽬录可以配置为“,”逗号分割的表达式,上⾯的num.io.threads要⼤于这个⽬录的个数这个⽬录,如果配置多个⽬录,新创建的topic他把消息持久化的地⽅是,当前以逗号socket.send.buffer.bytes=102400 #发送缓冲区buffer⼤⼩,数据不是⼀下⼦就发送的,先回存储到缓冲区了到达⼀定的⼤⼩后在发送,能提⾼性能
num.partitions=1 #默认的分区数,⼀个topic默认1个分区数
message.max.byte=5242880 #消息保存的最⼤值5M
replica.fetch.max.bytes=5242880 #取消息的最⼤直接数
log.segment.bytes=1073741824 #这个参数是:因为kafka的消息是以追加的形式落地到⽂件,当超过这个值的时候,kafka会新起⼀个⽂件
able=false #是否启⽤log压缩,⼀般不⽤启⽤,启⽤的话可以提⾼性能
三、启动kafka服务
1. 启动服务
# 从后台启动kafka集(3台都需要启动)
# cd /opt/kafkacluster/kafka/
# bin/kafka-server-start.sh -daemon config/server.properties
2. 检查服务状态
# 输⼊jps查看kafka集状态
[root@2edb888df34f config]# jps
9497 Jps
1273 Kafka
3. 关闭kafka服务
# ./kafka-server-stop.sh
4. 集测试
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
docker部署redis集
« 上一篇
如何在Windows系统上使用Docker
下一篇 »
推荐文章
热门文章
-
随机森林特征选择原理
2024-10-02 -
自动驾驶系统中的随机森林算法解析
2024-10-02 -
随机森林算法及其在生物信息学中的应用
2024-10-02 -
监督学习中的随机森林算法解析(六)
2024-10-02 -
随机森林算法在数据分析中的应用
2024-10-02 -
机器学习——随机森林,RandomForestClassifier参数含义详解
2024-10-02 -
随机森林 的算法
2024-10-02 -
随机森林算法作用
2024-10-02 -
监督学习中的随机森林算法解析(十)
2024-10-02 -
随机森林算法案例
2024-10-02 -
随机森林案例
2024-10-02 -
二分类问题常用的模型
2024-10-02 -
绘制ssd框架训练流程
2024-10-02 -
一种基于信息熵和DTW的多维时间序列相似性度量算法
2024-10-02 -
SVM训练过程范文
2024-10-02 -
如何使用支持向量机进行股票预测与交易分析
2024-10-02 -
二分类交叉熵损失函数binary
2024-10-02 -
tinybert_训练中文文本分类模型_概述说明
2024-10-02 -
基于门控可形变卷积和分层Transformer的图像修复模型及其应用
2024-10-02 -
人工智能开发技术的测试和评估方法
2024-10-02
最新文章
-
基于随机森林的数据分类算法改进
2024-10-02 -
人工智能中的智能识别与分类技术
2024-10-02 -
基于人工智能技术的随机森林算法在医疗数据挖掘中的应用
2024-10-02 -
随机森林回归模型的建模步骤
2024-10-02 -
r语言随机森林预测模型校准曲线
2024-10-02 -
《2024年随机森林算法优化研究》范文
2024-10-02
发表评论