【Linux】Docker安装kafka教程(超详细保姆篇)

来一杯龙舌兰 2024-10-06 11:07:06 阅读 87

在这里插入图片描述

文章目录

安装1.安装Zookeeper2.安装kafka3.创建zookeeper容器4.创建kafka容器5.测试kafka6.退出bash shell

Zookeeper服务启动1.首先找到Zookeeper安装路径2.执行./zkServer.sh start3.查看运行状态3.集群配置(可不阅)

kafka服务启动1.进入kafka的config目录2.修改server.properties3.执行kafka-server-start.sh 命令4.测试zookeeper跟kafka是否启动成功

生产消费示例(可不阅)1.到kafka的bin目录下创建一个主题kafka启动成功但是无法连接zookeeper解决

2.启动一个生产者,指定topic为刚刚创建的主题mykafka3.重新打开一个连接页面到bin目录下启动一个消费者

更多相关内容可查看

注:本篇默认已有服务器或虚拟机,并<code>已安装Docker

若虚安装Docker请移步【CentOS7】Linux安装Docker教程(保姆篇)

安装

1.安装Zookeeper

在 Apache Kafka 中,ZooKeeper 主要用于以下几个方面:

保存和管理 Kafka 集群的元数据信息。例如,Kafka 集群中的 Broker 信息、Topic 和 Partition

的信息、Consumer 的偏移量信息等。Kafka 集群的选举服务。当 Kafka 集群中的某个或某些 Broker 宕机时,ZooKeeper 可以协助 Kafka

集群选举出新的 Leader Broker。Kafka 集群的状态监控。ZooKeeper 可以监控 Kafka 集群中各个 Broker 的在线状态,并及时通知 Kafka

集群进行相应的处理。

因此,如果你要在 Docker 中运行 Kafka,你也需要运行 ZooKeeper。

docker pull wurstmeister/zookeeper

安装成功效果图

在这里插入图片描述

2.安装kafka

<code>docker pull wurstmeister/kafka

成功效果图

在这里插入图片描述

3.创建zookeeper容器

<code>docker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper

成功效果图

在这里插入图片描述

4.创建kafka容器

<code>docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest

成功效果图

在这里插入图片描述

5.测试kafka

<code>docker exec -it kafka /bin/bash

解析命令:

docker exec:这是Docker的一个命令,用于在运行的Docker容器中执行命令。-it:这是两个选项的组合。-i 选项让Docker的输入保持打开,-t 选项让Docker分配一个伪终端(pseudo-tty)。kafka:这是你要在其中执行命令的Docker容器的名称。/bin/bash:这是你要在Docker容器中执行的命令。在这个例子中,你是在打开一个bash shell。

成功效果图

在这里插入图片描述

6.退出bash shell

<code>exit

成功效果图

在这里插入图片描述

Zookeeper服务启动

1.首先找到Zookeeper安装路径

<code>find / -name kafka-topics.sh

成功效果图

在这里插入图片描述

2.执行./zkServer.sh start

如果出现最后一行则表示启动成功,但是会发现找不到zoo.cfg文件,如果不报这个可以直接跳过

<code>./zkServer.sh start

成功效果图

在这里插入图片描述

进入安装zookeeper的config文件

<code>cd /var/lib/docker/overlay2/80f2f1635bed9db5db5e5697053485db509c413aef6a5a6a3264330a7f53e8b4/diff/opt/zookeeper-3.4.13/conf/

将里面的zoo_xxx.cfg文件更名为zoo.cfg就可以了,当然也可以去改启动文件这里就不详细展开了

可看以下最后启动成功效果图

在这里插入图片描述

3.查看运行状态

该状态显示:以standalone模式运行。standalone模式意味着你只运行了一个Zookeeper服务器实例,而不是一个Zookeeper集群

<code>./zkServer.sh status

在这里插入图片描述

3.集群配置(可不阅)

如果你需要运行一个Zookeeper集群,你需要在<code>zoo.cfg配置文件中添加更多的server.X参数,并且为每个Zookeeper服务器实例指定一个唯一的ID。

然而,如果你只是在本地进行测试或者开发,standalone模式应该就足够了。现在你可以开始启动你的Kafka服务了。

kafka服务启动

1.进入kafka的config目录

如果不知道自己的kafka的安装路径,执行以下命令查找

find / -name kafka-topics.sh

成功效果图

在这里插入图片描述

进入到你查出来的kafka-topics.sh路径的上一个bin路径在进入config目录

<code>cd /var/lib/docker/overlay2/8244efe326332818bd6b780a6333a2af67b2731cf32ded8a9e72f2179c7bb7d6/diff/opt/kafka_2.13-2.8.1/config

ll

成功效果图

在这里插入图片描述

2.修改server.properties

找到config文件下的server.properties并进行修改端口,保存

在这里插入图片描述

3.执行kafka-server-start.sh 命令

<code>我这里为了保险起见,用的是kafka-server-start.sh 的全路径,跟server.properties的全路径

/var/lib/docker/overlay2/8244efe326332818bd6b780a6333a2af67b2731cf32ded8a9e72f2179c7bb7d6/diff/opt/kafka_2.13-2.8.1/bin/kafka-server-start.sh /var/lib/docker/overlay2/8244efe326332818bd6b780a6333a2af67b2731cf32ded8a9e72f2179c7bb7d6/diff/opt/kafka_2.13-2.8.1/config/server.properties

成功示例

在这里插入图片描述

4.测试zookeeper跟kafka是否启动成功

QuorumPeerMain为zookeeper服务

Kafka为kafka服务

<code>jps

在这里插入图片描述

生产消费示例(可不阅)

1.到kafka的bin目录下创建一个主题

<code>./kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka

# --create 创建一个主题

# --zookeeper 连接zookeeper

# --replication-factor kafka副本数

# --partitions kafka分区数

# --topic mykafka 主题名称

成功示例

在这里插入图片描述

kafka启动成功但是无法连接zookeeper解决

1.进入/etc/hosts 加上最后一行,192.168.x.x zookeeper。代表将将主机名映射到IP地址

在这里插入图片描述

2.检查zookeeper连接是否是本地,并重新试一下

在这里插入图片描述

2.启动一个生产者,指定topic为刚刚创建的主题mykafka

<code>/kafka-verifiable-producer.sh --broker-list localhost:9092 --topic mykafka

如果这个命令报找不到kafka-verifiable-producer.sh,但是你发现当前路径有这个kafka-verifiable-producer.sh,那就用全路径重新执行,你的全路径在上文已经find过了

/var/lib/docker/overlay2/8244efe326332818bd6b780a6333a2af67b2731cf32ded8a9e72f2179c7bb7d6/diff/opt/kafka_2.13-2.8.1/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka

成功示例

在这里插入图片描述

3.重新打开一个连接页面到bin目录下启动一个消费者

<code>./kafka-console-consumer.sh --topic mykafka --bootstrap-server 192.xxx.xxx.xxx:9092

以上同理如果找不到则使用全路径

/var/lib/docker/overlay2/8244efe326332818bd6b780a6333a2af67b2731cf32ded8a9e72f2179c7bb7d6/diff/opt/kafka_2.13-2.8.1/bin/kafka-console-consumer.sh --topic mykafka --bootstrap-server 192.168.xxx.xxx:9092

如果配置文件配置的localhost,则使用进行测试

./kafka-console-consumer.sh --topic mykafka --bootstrap-server localhost:9092

成功效果图

生产者

在这里插入图片描述

消费者

在这里插入图片描述

成功啦!!!!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。