龙空技术网

Ubuntu 安装docker zookeeper kafka集群

SeeYouCode 320

前言:

今天你们对“ubuntu安装kafka”可能比较注意,你们都想要分析一些“ubuntu安装kafka”的相关内容。那么小编也在网摘上收集了一些有关“ubuntu安装kafka””的相关资讯,希望看官们能喜欢,大家快快来学习一下吧!

Ubuntu安装docker

使用官方安装脚本自动安装

curl -fsSL  | bash -s docker --mirror Aliyun

Docker 镜像加速

阿里云镜像获取地址:

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容

{"registry-mirrors":[";]}

之后重新启动服务:

$ sudo systemctl daemon-reload$ sudo systemctl restart docker

Zookeeper集群配置

创建 bridge 网络

#创建自定义网络docker network create --driver bridge --subnet 172.0.0.0/16 woniu_network#查看已存在网络docker network ls

创建主节点挂载目录

# 创建 zookeeper 主节点配置存放目录mkdir -p /home/docker/zookeeper/master/conf# 创建 zookeeper 主节点数据存放目录mkdir -p /home/docker/zookeeper/master/data# 创建 zookeeper 主节点数据日志存放目录mkdir -p /home/docker/zookeeper/master/datalog# 创建 zookeeper 主节点日志存放目录mkdir -p /home/docker/zookeeper/master/logs# 创建 zookeeper 节点1 配置存放目录mkdir -p /home/docker/zookeeper/node1/conf# 创建 zookeeper 节点1 数据存放目录mkdir -p /home/docker/zookeeper/node1/data# 创建 zookeeper 节点1 数据日志存放目录mkdir -p /home/docker/zookeeper/node1/datalog# 创建 zookeeper 节点1 日志存放目录mkdir -p /home/docker/zookeeper/node1/logs# 创建 zookeeper 节点2 配置存放目录mkdir -p /home/docker/zookeeper/node2/conf# 创建 zookeeper 节点2 数据存放目录mkdir -p /home/docker/zookeeper/node2/data# 创建 zookeeper 节点2 数据日志存放目录mkdir -p /home/docker/zookeeper/node2/datalog# 创建 zookeeper 节点2 日志存放目录mkdir -p /home/docker/zookeeper/node2/logs

创建配置文件

# zookeeper 主节点配置存放目录cd /home/docker/zookeeper/master/conf# 编辑配置文件vi zoo.cfg# zookeeper 节点1 配置存放目录cd /home/docker/zookeeper/node1/conf# 编辑配置文件vi zoo.cfg# zookeeper 节点2 配置存放目录cd /home/docker/zookeeper/node2/conf# 编辑配置文件vi zoo.cfg

参考配置

# Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里dataDir=/data# 事物日志存储地点,如果没提供的话使用的则是 dataDirdataLogDir=/datalog# 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位tickTime=2000# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)initLimit=5# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)syncLimit=2# 默认值为3,不支持以系统属性方式配置。用于配置Zookeeper在自动清理的时候需要保留的快照数据文件数量和对应的事务日志文件。此参数的最小值为3,如果配置的值小于3会自动调整到3autopurge.snapRetainCount=3# 默认值为0,单位为小时,不支持以系统属性方式配置。用于配置Zookeeper进行历史文件自动清理的频率。如果配置为0或负数,表示不需要开启定时清理功能autopurge.purgeInterval=0# 默认为60,不支持以系统属性方式配置。从Socket层面限制单个客户端与单台服务器之间的并发连接数,即以ip地址来进行连接数的限制。# 如果设置为0,表示不做任何限制。仅仅是单台客户端与单个Zookeeper服务器连接数的限制,不能控制所有客户端的连接数总和maxClientCnxns=60# 3.5.0中的新功能:当设置为false时,可以在复制模式下启动单个服务器,单个参与者可以使用观察者运行,并且群集可以重新配置为一个节点,并且从一个节点。# 对于向后兼容性,默认值为true。可以使用QuorumPeerConfig的setStandaloneEnabled方法或通过将“standaloneEnabled = false”或“standaloneEnabled = true”添加到服务器的配置文件来设置它。standaloneEnabled=false# 内嵌的管理控制台,停用这个服务admin.enableServer=false# 开启四字命令,将所有命令添加到白名单中4lw.commands.whitelist=*# 集群中服务的列表server.1=172.0.0.181:2888:3888;2181server.2=172.0.0.182:2888:3888;2181server.3=172.0.0.183:2888:3888;2181
集群模式启动

主节点启动

docker run -d --restart always \--name zookeeper-master \--network woniu_network \--ip 172.0.0.181 \-p 2181:2181 \-e ZOO_MY_ID=1 \-v /home/docker/zookeeper/master/conf/zoo.cfg:/conf/zoo.cfg \-v /home/docker/zookeeper/master/data:/data \-v /home/docker/zookeeper/master/datalog:/datalog \-v /home/docker/zookeeper/master/logs:/logs \zookeeper

节点1 启动

docker run -d --restart always \--name zookeeper-node1 \--network woniu_network \--ip 172.0.0.182 \-p 2182:2181 \-e ZOO_MY_ID=2 \-v /home/docker/zookeeper/node1/conf/zoo.cfg:/conf/zoo.cfg \-v /home/docker/zookeeper/node1/data:/data \-v /home/docker/zookeeper/node1/datalog:/datalog \-v /home/docker/zookeeper/node1/logs:/logs \zookeeper

节点2 启动

docker run -d --restart always \--name zookeeper-node2 \--network woniu_network \--ip 172.0.0.183 \-p 2183:2181 \-e ZOO_MY_ID=3 \-v /home/docker/zookeeper/node2/conf/zoo.cfg:/conf/zoo.cfg \-v /home/docker/zookeeper/node2/data:/data \-v /home/docker/zookeeper/node2/datalog:/datalog \-v /home/docker/zookeeper/node2/logs:/logs \zookeeper

集群状态

# 在容器 zookeeper-master 中开启一个交互模式的终端docker exec -it zookeeper-master /bin/bash# 查看 zookeeper 状态bin/zkServer.sh status

Kafka集群配置

sudo docker run  -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.107:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.107:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafkasudo docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.107:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.107:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafkasudo docker run  -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.107:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.107:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka

--name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0

--name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1

--name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=2

进入docker容器

docker exec -it ${CONTAINER ID} /bin/bash

创建一个topic

bin/kafka-topics.sh --create --zookeeper 192.168.1.107:2181 --replication-factor 1 --partitions 1 --topic mykafka

运行一个消息生产者,指定topic为刚刚创建的主题

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka

运行一个消费者,指定同样的主题

bin/kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic mykafka --from-beginning

生产者测试发送消息

消费者测试接收消息

标签: #ubuntu安装kafka