当前位置:首页 » 《资源分享》 » 正文

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

15 人参与  2024年09月21日 16:01  分类 : 《资源分享》  评论

点击全文阅读


在这里插入图片描述

文章目录

安装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目录下启动一个消费者
更多相关内容可查看

注:本篇默认已有服务器或虚拟机,并已安装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

docker pull wurstmeister/kafka

成功效果图
在这里插入图片描述

3.创建zookeeper容器

docker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper

成功效果图
在这里插入图片描述

4.创建kafka容器

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

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

exit

成功效果图
在这里插入图片描述

Zookeeper服务启动

1.首先找到Zookeeper安装路径

find / -name kafka-topics.sh

成功效果图

在这里插入图片描述

2.执行./zkServer.sh start

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

./zkServer.sh start

成功效果图
在这里插入图片描述
进入安装zookeeper的config文件

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

将里面的zoo_xxx.cfg文件更名为zoo.cfg就可以了,当然也可以去改启动文件这里就不详细展开了
可看以下最后启动成功效果图

在这里插入图片描述

3.查看运行状态

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

./zkServer.sh status

在这里插入图片描述

3.集群配置(可不阅)

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

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

kafka服务启动

1.进入kafka的config目录

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

find / -name kafka-topics.sh

成功效果图
在这里插入图片描述
进入到你查出来的kafka-topics.sh路径的上一个bin路径在进入config目录

cd /var/lib/docker/overlay2/8244efe326332818bd6b780a6333a2af67b2731cf32ded8a9e72f2179c7bb7d6/diff/opt/kafka_2.13-2.8.1/configll

成功效果图

在这里插入图片描述

2.修改server.properties

找到config文件下的server.properties并进行修改端口,保存
在这里插入图片描述

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

我这里为了保险起见,用的是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服务

jps

在这里插入图片描述

生产消费示例(可不阅)

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

./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

/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目录下启动一个消费者

./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

成功效果图

生产者

在这里插入图片描述

消费者
在这里插入图片描述

成功啦!!!!


点击全文阅读


本文链接:http://zhangshiyu.com/post/162800.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1