1. 下载
官方下载地址:http://kafka.apache.org/downloads.html
2. wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.1/kafka_2.13-2.7.1.tgz
# 可以从镜像下载更快
3. 解压
tar zxvf kafka_2.13-2.7.1.tgz
4. 配置
cd ./ kafka_2.13-2.7.1/config/ --- 进入kafka目录
5. 修改server.properties ,搭建集群时,将该文件拷贝到不同的机器上,若是伪集群,则可以使用不同的文件名
broker.id=0 ●broker的全局唯一编号,每个broker不能重复,因此要在其他机器上配置 broker.id=1、broker.id=2
listeners=PLAINTEXT://hostname:9092 ●指定监听的IP和端口,如果修改每个broker的IP需区分开来,也可保持默认配置不用修改
advertised.listeners= PLAINTEXT://hostname:9092
#warn: advertised.listeners和listeners关系未完全弄清楚,我自己搭建的环境listeners设置为0.0.0.0
num.network.threads=3 #42行,broker 处理网络请求的线程数量,一般情况下不需要去修改
num.io.threads=8 #45行,用来处理磁盘IO的线程数量,数值应该大于硬盘数
socket.send.buffer.bytes=102400 #发送套接字的缓冲区大小
socket.receive.buffer.bytes=102400 #接收套接字的缓冲区大小
socket.request.max.bytes=104857600 #请求套接字的缓冲区大小
log.dirs=/usr/local/kafka/logs #kafka运行日志存放的路径,也是数据存放的路径,若是伪集群可以是 logs1、logs2、logs3 ...
num.partitions=1 #topic在当前broker上的默认分区个数,会被topic创建时的指定参数覆盖
num.recovery.threads.per.data.dir=1 #用来恢复和清理data下数据的线程数量
log.retention.hours=168 #segment文件(数据文件)保留的最长时间,单位为小时,默认为7天,超时将被删除
log.segment.bytes=1073741824 #一个segment文件最大的大小,默认为 1G,超出将新建一个新的segment文件
zookeeper.connect=hostname:2181,hostname:2181,hostname:2181 ●配置连接Zookeeper集群地址
6. 创建目录
分别在多个节点上创建 或者 伪集群中分别创建多个目录,需与service.prperties 的 log.dirs属性保持一致
mkdir /usr/local/kafka/logs
7. 启停
./bin/kafka-server-start.sh -daemon ./config/server.properties
./bin/kafka-server-stop.sh ./config/ server.properties
8. 总结
伪分布式搭建主要修改以下几点,
创建多个log.dirs目录,复制多个server.properties文件并修改以下几点
broker.id=1
port=9092
listeners=PLAINTEXT://hostname:9092
advertised.listeners=PLAINTEXT://hostname:9092
log.dirs=/zxy/apps/kafka/kafkalog_1