目录
一、官网下载
二、安装配置
本地安装配置(单机模式)
伪分布式模式
真分布式模式
安装过程遇到问题及解决办法
官网地址:http://kafka.apache.org/
下载非src版(src版为源码)
kafka运行需要使用zookeper,安装zookeper可参考我的另一篇文章:https://blog.csdn.net/qq_26012495/article/details/102593752
直接解压至目标路径(常用/usr/local或/opt,这里选择/opt):
tar -zxvf kafka_2.13-2.5.0.tgz
配置环境变量,在/etc/profile下加入如下,然后执行source /etc/profile使配置生效【该步骤可略过,但不配置环境变量,执行kafka命令需要进入kafka_home/bin下】
export PATH=/opt/kafka_2.13-2.5.0/bin:$PATH
在/opt/kafka_2.13-2.5.0下新建文件夹
mkdir logs
修改日志打印路径为刚刚新建的文件夹(kafka文件夹下config文件夹中server.properties文件)
log.dirs=/opt/kafka_2.13-2.5.0/logs
启动kafka,此时必须保证zookeper已经启动,否则会启动失败(启动中会遇到某些失败情况,解决办法可见文章结尾)
kafka提供了本地启动脚本kafka-server-start.sh,该脚本在执行时需要指定server.properties配置文件,使用其中的配置完成KafkaServer的实例化,可选参数-daemon可使程序以守护进程的方式后台运行
控制台启动:
kafka-server-start.sh /opt/kafka_2.13-2.5.0/config/server.properties
后台启动:
kafka-server-start.sh -daemon /opt/kafka_2.13-2.5.0/config/server.properties
启动成功后,去看刚刚设置的日志路径,已经有了数据。
其中,/opt/kafka_2.13-2.5.0/config/log4j.properties可对Kafka的输出日志进行调整。
kafka启动需要指定一个用于kafka初始化的相关配置server.properties,该名字可任意,一个配置文件对应一个kafka实例。伪分布式模式就是在一台机器上启动多个kafka实例,因此需要复制多个server.properties,例如:
server_1.properties
server_2.properties
server_3.properties
并且需要指定不同的kafka实例日志存储在不同的路径,对应不同的端口号及集群id,分别设置server.properties中的这三个参数,并同时新建指定的日志目录【broker.id代表集群id,必须唯一,无大小之分;默认port为9092】:
集群1:
broker.id=1
log.dirs=/opt/kafka_2.13-2.5.0/logs/broker_1
port=9092
==========================================
集群2:
broker.id=2
log.dirs=/opt/kafka_2.13-2.5.0/logs/broker_2
port=9093
==========================================
集群3:
broker.id=3
log.dirs=/opt/kafka_2.13-2.5.0/logs/broker_3
port=9094
然后每一次启动指定一个server.properties
kafka-server-start.sh -daemon /opt/kafka_2.13-2.5.0/config/server1.properties
kafka-server-start.sh -daemon /opt/kafka_2.13-2.5.0/config/server2.properties
kafka-server-start.sh -daemon /opt/kafka_2.13-2.5.0/config/server3.properties
略
首次启动尽量以非-daemon方式启动,方便排查错误信息
一切准备就绪后首次启动,突然报错,看报错是内存不够了:
由于服务器内存太小,将启动参数调小,默认堆初始化(-Xms)空间为1GB,堆最大空间为1GB,kafka-server-start.sh文件中:
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
改成:
export KAFKA_HEAP_OPTS="-Xmx128M -Xms128M"
改完后,启动流程走了起来,正在开心,发现结尾告诉我启动失败,然后发现报错了out of Memory...
再改
export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"
再启动,继续报错,崩溃。java.net.UnknownHostException: host.localdomain: host.localdomain: 未知的名称或服务
在kafkaHome/config/server.properties中新增
host.name=localhost
终于成功....