使用centos搭建kafka服务器Docker

整体描述

最近项目需要使用kafka对接第三方接口,但是对方没有调试环境,索性就自己先搭建一个简单的kafka服务器。
搭建具体要求如下:

  1. 使用docker部署kafka服务
  2. 需要在纯净的centos基础上搭建,不要使用第三方已经做好的现成的docker,用第三方的虽然方便,但是安全性也不好说
  3. kafka使用最新版本,目前是3.4.0
  4. 由于是测试,没有做kafka集群,就是单一部署

前期准备

根据以上要求,在搭建之前,需要准备如下工作,准备工作和本篇搭建kafka关系不大,就不进行详细介绍了,需要了解的小伙伴可以单独按照下面的工作百度,一搜一大堆教程,主要就是第一步需要装一下。

  1. 由于是在本机搭建,windows系统需要安装docker,可以再安装一个docker desktop软件,操作和看着都方便
  2. 下载一个纯净版的centos,我这里用的是7.6.1810的,这个在阿里云官网就有,直接下载就行。 阿里云官方下载地址,进去之后选择centos,下载需要的版本即可。
  3. 导入centos镜像,导入命令如下:
docker load -i centos.7.61810.tar
  1. 创建容器,这里我映射了两个端口,9092是kafka用的,2181是zookeeper的端口,zookeeper不知道用不用映射出来,我是都映射了。命令如下,其中【镜像ID】就是我们刚刚导入的cents的镜像的ID:
docker run -itd -p 9092:9092 -p 2181:2181 --privileged --name kafka-server-3.4.0 【镜像ID】 /usr/sbin/init

以上准备工作做完,就可以开始我们的主菜了,在centos下搭建kafka服务。

具体步骤

1. 安装java环境

1.1. 下载java包

kafka也是需要基于java的,所以需要在centos上安装java环境,我下载的是java8,在官网下载,需要登录,这个自己下载吧,下载x64的,下载之后传到docker里,我放在了/opt目录下。

1.2. 解压java包

解压命令:

tar -zxvf jdk-8u341-linux-x64.tar.gz

1.3. 配置环境变量

编辑/etc/profile文件,添加如下三行:

export JAVA_HOME=/opt/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

文件如下,画框的为添加的:
profile

1.4. 更新配置

执行如下指令,使刚才添加的配置生效:

source /etc/profile

这时候执行:

java -version

看一下返回java的版本号,就是成功了。

2. kafka文件

2.1. 下载kafka文件

在kafka官方下载kafka,我这里下载的是3.4.0,可以根据需要自行下载:下载地址
选择3.4.0版本点击进入,下载kafka_2.13-3.4.0.tgz 这个文件。

2.2. 上传kafka并解压

将上一步下载的kafka压缩包上传到docker,并解压,这里我也上传到了/opt目录下,解压命令如下:

tar -zxvf kafka_2.13-3.4.0.tgz

3. 启动zookeeper

3.1. 启动zookeeper

解压之后,会生成同名文件夹,进入这个文件夹执行如下命令:

bin/zookeeper-server-start.sh config/zookeeper.properties &

之后会有一堆log打印,看到最后打印出success就说明成功了,如下图:
zookeeper启动成功

3.2. 查看启动状态

这块也可以用如下命令看是否成功:

jps

jps
看到红框这个进程,就说明zookeeper启动成功了。

3.3. 启动zookeeper报错

我在启动的时候报错,错误为:Zookeeper audit is disabled
这个是zookeeper新增的审核日志是默认关闭的,所以出现这种情况。我们给打开就行,打开方法是修改配置文件:
/opt/kafka_2.13-3.4.0/config,修改zookeeper.properties,添加下面一行:

audit.enable=true

添加之后再启动,就不报错了。

4. 启动kafka

4.1. 修改配置文件

启动kafka之前,需要先修改kafka的配置文件,将hostname修改为宿主机的IP,修改:/opt/kafka_2.13-3.4.0/config,修改server.properties:
kafka

4.2. 启动kafka

修改之后,启动kafka:注意,这块启动的时候要等上面zookeeper启动一会之后再启动,因为kafka启动需要连接zookeeper,这里启动太快了,zookeeper那还没准备完,kafka就启动失败了。

bin/kafka-server-start.sh config/server.properties &

使用3.2的方法查看启动是否成功,如下两个进程,就说明成功了。
kafka

5. 启动生产者Demo

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

执行之后在命令行里输入测试消息:
producer

6. 启动消费者Demo

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

执行之后,收到了刚才发的消息:
consumer

7. 打包docker

使用如下指令打包docker镜像:

docker export -o kafka-server-3.4.0.tar 【容器ID】

8. 启动kafka

上面已经把kafka镜像创建完成,这里就需要加载镜像启动了。

8.1. 加载镜像

使用如下命令加载镜像:
cat 【加载的镜像名称】 | sudo docker import - 【新创建的镜像的名称】
具体命令如下:

cat kafka-server-3.4.0.tar | sudo docker import - kafka-server-3.4.0

加载成功使用如下命令查看:

docker images

查看镜像
这里需要记住后面的IMAGE ID,之后创建容器的时候会用到。

8.2. 创建容器

使用如下命令创建容器,将下面命令的【镜像ID】换成刚才创建的镜像的ID:

docker run -itd -p 9092:9092 -p 2181:2181 --privileged --name kafka-server-3.4.0 【镜像ID】 /usr/sbin/init

使用如下指令查看创建容器是否成功:

docker -ps -a

查看容器
这里需要记住CONTAINER ID,之后会用到。

8.3. 启动kafka

由于容器中没有配置自启动,需要进入容器进行一些操作,进入容器指令如下,将【容器进程ID】换成上一步创建容器的CONTAINER ID:

docker exec -it   【容器进程ID】   /bin/bash

进入容器之后,依次执行:
注意第三条执行完,还是要去改一下kafka的配置文件,也就是本文的4.1写的,将IP改成宿主机的IP,然后再执行第四条指令。

source /etc/profile
cd /opt/kafka_2.13-3.4.0
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &

使用jps指令查看,如果和4.2写的一样,有那两个进程,就说明kafka已经启动成功了。

总结

至此,kafka的docker就部署完了,使用代码接收kafka消息就比较简单了,可以自行百度一下,之后有时间我也会写一篇springboot集成kafka的文章。

要在CentOS使用Docker安装Kafka,请按照以下步骤进行操作: 1. 首先,您需要安装Docker。对于Windows系统,您可以安装Docker Desktop软件。您可以从官方网站下载纯净版的CentOS镜像。您可以在阿里云官方网站上找到需要的版本并进行下载。 2. 下载完CentOS镜像后,使用以下命令导入该镜像: ``` docker load -i centos.7.61810.tar ``` 3. 创建容器时,我们需要映射两个端口,即9092端口用于Kafka,2181端口用于Zookeeper。执行以下命令创建容器,其中【镜像ID】是刚刚导入的CentOS镜像的ID: ``` docker run -itd -p 9092:9092 -p 2181:2181 --privileged --name kafka-server-3.4.0 【镜像ID】 /usr/sbin/init ``` 4. 请注意,由于Docker Kafka版本不断迭代,不再建议使用localhost/127.0.0.1作为KAFKA_ADVERTISED_HOST_NAME。因此,您需要将KAFKA_ADVERTISED_HOST_NAME设置为您的IP地址。 5. 启动容器后,可以使用以下命令进入容器并验证Kafka是否正确安装: ``` docker exec -it kafka bash ``` 6. 如果容器启动后不久就自动退出,并且日志显示启动失败且指向的主机不可达,可能是由于防火墙的原因导致的。您可以通过执行以下命令关闭防火墙: ``` systemctl stop firewalld ``` 7. 如果关闭防火墙后重启容器失败,可能是由于关闭防火墙时清空了iptables表。您可以重建iptables来解决此问题。 8. 现在,您已经成功安装Kafka。您可以使用以下命令验证Kafka是否正确安装: ``` docker export -o kafka-server-3.4.0.tar 【容器ID】 ``` 请注意,这只是在CentOS使用Docker安装Kafka的一种方法。根据您的需求和环境,您可能需要进行适当的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [使用centos搭建kafka服务器Docker](https://blog.youkuaiyun.com/nhx900317/article/details/130833181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Docker搭建kafka](https://blog.youkuaiyun.com/qq_31728357/article/details/119297596)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值