威联通安装Kafka

最近在学习 Kafka 的知识,遇到一些问题网上搜到的信息不全。想要在本地安装一个 Kafka 进行验证,想到了之前买的 Nas 就开始折腾。

用 Docker 的方式安装 Kafka

现在的 Nas 很多都支持 Docker,我买的也支持。威联通的 Docker 叫 Container Station,因为提供了图形化界面就不用写命令了。现在的 Kafka 似乎可以在没有 Zookeeper 的情况下运行,但我考虑到万一以后要用到 Zookeeper 再腾出时间来安装太费事了,就索性一起装了。

安装 Zookeeper

选择映像

Zookeeper 的映像我使用的是搜索出来的第一个镜像,因为看起来像是官方出品。下载完映像后开始安装过程。

发布网络端口

配置一下Zookeeper 对外暴露的网络端口,这个映像已经把用到的端口写上了,只需要配置主机上要暴露的端口就可以了。如果不填就是与容器的端口保持一致,我直接在所有的端口前面加了一个 1(2181 变成 12181)。容器端口最好不要改,如果改了的话要在 Kafka 的配置里做相同的更改。

存储映射

在高级设置中配置文件夹的映射,映像也已经把用到的几个文件夹提出来了(本来还想去网上搜一下要用的哪些文件夹)。为了方面看文件,我把这三个文件夹 绑定装载主机路径 ,绑定到 Nas 的文件夹里。

Zookeeper 安装完成

配置完网络和存储就直接安装完成了,Zookeeper 自己会启动。等启动完之后看日志没有报错,再登录容器执行 zkCli.sh,能连接上就说明成功了。

安装 Kafka

选择映像

Kafka 的映像我使用的是星星最多的 bitnami/kafka 映像。下载映像后直接开始安装。

配置文件

Kafka 依赖几个配置文件,要在安装之前先准备好并放到 Nas 上的一个目录里,我在 Nas 上新建了一个 Container\kafka\config 目录,在安装 Kafka 的步骤里映射到容器里。

server.properties

server.properties 是 Kafka 的核心配置文件,没有启动会报错。文件的内容如下

复制代码
broker.id=0
listeners=PLAINTEXT://{Ip}:{Port}
log.dirs=/var/lib/kafka/data
zookeeper.connect={Ip}:{Port}
  • broker.id:Broker 的 id,随便写一个大于等于 0 的整数就可以了
  • listeners:监听的端口,PLAINTEXT:// 是固定的,后面是 ip 和端口,默认端口是 9092,没有特殊需求可以不用改
  • log.dirs:日志文件夹
  • zookeeper.connect:Zookeeper 的 ip 和端口.注意这里的端口是 zk 容器的端口,不要写成主机映射的端口(在安装 zookeeper 时不管有没有绑定主机端口都没有影响,用容器端口)
log4j.properties

Kafka 的日志文件,网上直接拷贝一份就可以了。我是直接在 Github 上拉的 Kafka 项目里的 log4j.properties 文件。

tools-log4j.properties

Kafka 工具的日志文件,同样网上直接拷贝。我还是直接在 Github 上拉的 Kafka 项目里的 tools-log4j.properties 文件。

网络映射

这个映像文件已经把要用的端口提出来了,根据需要绑定主机端口,如果不填就是对外暴露 9092 端口。

存储映射

存储映射的时候配置文件的目录是一定要绑定的,因为要把刚才新建的几个配置文件映射到容器里让 Kafka 能够使用。我还映射了一个 data 文件夹,方便后面看文件学习。

Kafka 安装完成

网络映射和存储映射都配置好了之后,就可以完成安装了。等容器启动完成后看下日志,没有报错就算成功了。为了验证安装是否成功可以登录容器创建一个 Topic

shell 复制代码
kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --create --replication-factor 1 --partitions 1 --topic first-topic

注意这里的 ip 和端口一定要和配置文件里的一致,不然可能会报错。Topic 创建成功就说明 Kafka 安装成功了(其实只要 Kafka 响应了就算安装成功了)。

关于网络

安装之间看到有文章说 Docker 容器之间互相访问需要对网络做一些配置,想着先安装完试一下再说。结果安装完直接可以用,不需要对网络做处理,不知道是否威联通做了处理。反正不用处理最好。

相关推荐
ZeroNews内网穿透5 天前
企业 NAS 本地目录安全对外公网访问方案:ZeroNews LFS 文件空间特性与落地场景
内网穿透·权限管理·文件共享·nas·公网访问·企业文件服务器·zeronews lfs
Thomas.Sir5 天前
第21课:PyTorch|GPU多卡训练与分布式训练基础【让多卡并行成为你的加速引擎】
人工智能·pytorch·分布式
Cicada1285 天前
库存消息消费的正确性设计——从幂等窗口到批量流水线
分布式·系统架构
Nano叶落6 天前
Kafka 消费积压排查入门:Docker 搭环境亲手制造一次 ‘消息堵死‘,10 分钟看懂 Lag
kafka
Francek Chen6 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria7 天前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
吉甫作诵7 天前
Kafka 集群安装与运维实战:消费组排查、Offset 重置与副本重分配
大数据·运维·分布式·kafka·消息队列
imDwAaY7 天前
消息队列四大核心问题:顺序性、幂等性、可靠性与一致性
学习·kafka·rabbitmq
ZeroNews内网穿透7 天前
内网部署 Halo 建站,用 ZeroNews 免费内网穿透安全发布到公网(无公网 IP 也能 HTTPS 访问)
docker·https·内网穿透·nas·反向代理·halo·zeronews