CentOS 7环境下,三个节点node01-03,目前已经安装过jdk8 和 ZooKeeper集群,在此基础上搭建 Kafka 集群。
1、下载
官网地址:Apache Kafka,这里选择相对稳定的版本,
2、传输到虚拟机的/usr/education目录下,解压缩。
3、三个节点主机名配置
通过hostname查看目前的主机名,通过systemctl set-hostname hostname设置主机名,修改
/etc/hosts文件,增加三个节点映射关系:
192.168.216.118 node01
192.168.216.128 node02
192.168.216.138 node03
4、修改node01第一个节点上的配置文件/opt/education/kafka_2.12-2.7.1/config/server.properties
broker.id=0
listeners=PLAINTEXT://node01:9092
log.dirs=/usr/kafka-logs
zookeeper.connect=node01:2181,node02:2181,node03:2181
5、将kafka整个目录scp命令拷贝到node02和node03上,然后修改server.properties文件,修改的地方为前两处,node02上配置修改:
broker.id=1
listeners=PLAINTEXT://node02:9092
node03上配置修改:
broker.id=3
listeners=PLAINTEXT://node03:9092
6、根据虚拟机内存设置jvm参数,修改/opt/education/kafka_2.12-2.7.1/bin/kafka-server-start.sh
文件,默认1G,可以改小一点,要不kafka启动不来,或者启动之后又突然停止了。
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"
fi
7、三个节点上启动kafka服务,切换到kafka目录,使用如下命令:
./bin/kafka-server-start.sh -daemon config/server.properties
通过jps查看服务是否启动成功,如果没有kafka,说明没成功,按照上面顺序依次检查各个配置。
8、查看topic
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --list
9、在节点node01上使用命令创建topic
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --create --topic topic01 --partitions 3 --replication-factor 2
10、查看分区
./bin/kafka-topics.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --describe --topic topic01
11、在node01-03上启动消费者
./bin/kafka-console-consumer.sh --bootstrap-server node01:9092,node02:9092,node03:9092 --topic topic01 --group group01 --property print.key=true --property print.value=true --property key.separator=,
12、再起一个node01客户端连接,使用如下命令生产消息,输入消息后回车,多输入几次消息,然后观察node01-03上消费情况
./bin/kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic topic01