1. 准备三台机器,系统CentOs6
2. 安装好JDK和zookeeper
参考: zookeeper配置记录
3. 解压安装包到指定目录
tar -zxvf kafka_2.12-2.1.0.tgz -C /javatools
4. 创建一个文件夹,用来存放日志(集群所有机器都要有)
mkdir -p /kafkadata
5. 配置kafka config目录下的server.properties文件
每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况,这里可将三台机器分别配成0,1,2
broker.id=0
监听址址;修改为kafka要监听的地址,每台机器写自己的ip
listeners=PLAINTEXT://192.168.89.134:9092
打广告的地址,若是设置的话,会提供给producers, consumers,其他broker连接,具体如何使用还未深究,三台机器写自己的ip
advertised.listeners=PLAINTEXT://192.168.89.134:9092
kafka数据的存放地址,多个地址的话用逗号分割 /tmp/kafka-logs-1,/tmp/kafka-logs-2
log.dirs=/kafkadata
zookeeper集群的地址,可以是多个,多个之间用逗号分割 hostname1:port1,hostname2:port2,hostname3:port3(三台机器一致)
zookeeper.connect=192.168.89.134:2181,192.168.89.135:2181,192.168.89.136:2181
6. 使用scp命令将文件传到另外两台机器
scp -r /javatools/kafka_2.12-2.1.0 root@slave1: /javatools
scp -r /javatools/kafka_2.12-2.1.0 root@slave2: /javatools
传完后记得修改其他机器配置文件中的broker.id和部分ip地址
7. 先启动zookeeper,在启动kafka
三台机器都启动
/javatools/zookeeper-3.4.12/bin/zkServer.sh start
/javatools/kafka_2.12-2.1.0/bin/kafka-server-start.sh -daemon /javatools/kafka_2.12-2.1.0/config/server.properties
使用jps命令查看所有机器是否启动成功
8. 创建topic和生成者消费者来验证是否搭建成功
在kafka的bin目录下:
在一台机器上创建topic
./kafka-topics.sh --create --zookeeper 192.168.89.134:2181 --replication-factor 2 --partitions 1 --topic test_topics
查看topic
/javatools/kafka_2.12-2.1.0/bin/kafka-topics.sh --list --zookeeper localhost:2181
在另一台机器上创建生产者
./kafka-console-producer.sh -broker-list slave1:9092 -topic test_topics
在第三台机器上创建消费者(新版本不支持--zookeeper命令)
./kafka-console-consumer.sh --bootstrap-server slave2:9092 --topic test_topics --from-beginning
此时,在生产者的命令行中输入消息,消息会出现在消费者的命令行中