文章目录 安装 1.安装Zookeeper 2.安装kafka 3.创建zookeeper容器 4.创建kafka容器 5.测试kafka 6.退出bash shell Zookeeper服务启动 1.首先找到Zookeeper安装路径 2.执行./zkServer.sh start 3.查看运行状态 3.集群配置(可不阅) kafka服务启动 1.进入kafka的config目录 2.修改server.properties 3.执行kafka-server-start.sh 命令 4.测试zookeeper跟kafka是否启动成功 生产消费示例(可不阅) 1.到kafka的bin目录下创建一个主题 kafka启动成功但是无法连接zookeeper解决 2.启动一个生产者,指定topic为刚刚创建的主题mykafka 3.重新打开一个连接页面到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 AI写代码 bash 1 安装成功效果图
2.安装kafka docker pull wurstmeister/kafka AI写代码 bash 1 成功效果图
3.创建zookeeper容器 docker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper AI写代码 bash 1 成功效果图
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 AI写代码 bash 1 成功效果图
5.测试kafka docker exec -it kafka /bin/bash AI写代码 bash 1 解析命令:
docker exec:这是Docker的一个命令,用于在运行的Docker容器中执行命令。 -it:这是两个选项的组合。-i 选项让Docker的输入保持打开,-t 选项让Docker分配一个伪终端(pseudo-tty)。 kafka:这是你要在其中执行命令的Docker容器的名称。 /bin/bash:这是你要在Docker容器中执行的命令。在这个例子中,你是在打开一个bash shell。 成功效果图
6.退出bash shell exit AI写代码 bash 1 成功效果图
Zookeeper服务启动 1.首先找到Zookeeper安装路径 find / -name kafka-topics.sh AI写代码 bash 1 成功效果图
2.执行./zkServer.sh start 如果出现最后一行则表示启动成功,但是会发现找不到zoo.cfg文件,如果不报这个可以直接跳过
./zkServer.sh start AI写代码 bash 1 成功效果图
进入安装zookeeper的config文件
cd /var/lib/docker/overlay2/80f2f1635bed9db5db5e5697053485db509c413aef6a5a6a3264330a7f53e8b4/diff/opt/zookeeper-3.4.13/conf/ AI写代码 bash 1 将里面的zoo_xxx.cfg文件更名为zoo.cfg就可以了,当然也可以去改启动文件这里就不详细展开了 可看以下最后启动成功效果图
3.查看运行状态 该状态显示:以standalone模式运行。standalone模式意味着你只运行了一个Zookeeper服务器实例,而不是一个Zookeeper集群
./zkServer.sh status AI写代码 bash 1
3.集群配置(可不阅) 如果你需要运行一个Zookeeper集群,你需要在zoo.cfg配置文件中添加更多的server.X参数,并且为每个Zookeeper服务器实例指定一个唯一的ID。
然而,如果你只是在本地进行测试或者开发,standalone模式应该就足够了。现在你可以开始启动你的Kafka服务了。
kafka服务启动 1.进入kafka的config目录 如果不知道自己的kafka的安装路径,执行以下命令查找
find / -name kafka-topics.sh AI写代码 bash 1 成功效果图
进入到你查出来的kafka-topics.sh路径的上一个bin路径在进入config目录
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 命令 我这里为了保险起见,用的是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 AI写代码 bash 1 如果这个命令报找不到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 AI写代码 bash 1 成功示例
3.重新打开一个连接页面到bin目录下启动一个消费者 ./kafka-console-consumer.sh --topic mykafka --bootstrap-server 192.xxx.xxx.xxx:9092 AI写代码 bash 1 以上同理如果找不到则使用全路径
/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 AI写代码 bash 1 如果配置文件配置的localhost,则使用进行测试
./kafka-console-consumer.sh --topic mykafka --bootstrap-server localhost:9092 AI写代码 bash 1 成功效果图
生产者
消费者
成功啦!!!! ———————————————— 版权声明:本文为CSDN博主「来一杯龙舌兰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/Aaaaaaatwl/…