Kafka2.2.0 三节点集群搭建
Kafka2.2.0 基于zookeeper搭建,这里也搭建一个三个节点的集群。(在一个节点模拟三节点,真实的三节点把ip替换一下即可,按照hadoop案件把网络打通即可)
1、下载解压
Kafka 安装包官方下载地址 ,本用例下载的版本为 2.2.0 ,下
载命令:
bash
# 下载
wget https://www-eu.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz
#cp到指定目录
cp kafka_2.12-2.2.0.tgz /usr/app/
# 解压
tar -xzf kafka_2.12-2.2.0.tgz
2 拷贝配置文件
进入解压目录的 config 目录下 ,拷贝三份配置文件:
bash
cp server.properties server-1.properties
cp server.properties server-2.properties
cp server.properties server-3.properties
3 修改配置
分别修改三份配置文件中的部分配置,如下:
只修改下面的属性,其他的属性不需要动
server-1.properties
bash
# The id of the broker. 集群中每个节点的唯一标识
broker.id=0
# 监听地址,hadoop101是本机域名
listeners=PLAINTEXT://hadoop101:9092
# 数据的存储位置
log.dirs=/usr/local/kafka-logs/00
# Zookeeper连接地址(如果Zookeeper和kafka都在一个节点上,节点对应域名就是hadoop101节点)
zookeeper.connect=hadoop101:2181,hadoop101:2182,hadoop101:2183
server-2.properties
bash
broker.id=1
listeners=PLAINTEXT://hadoop101:9093
log.dirs=/usr/local/kafka-logs/01
zookeeper.connect=hadoop101:2181,hadoop101:2182,hadoop101:2183
server-3.properties
bash
broker.id=2
listeners=PLAINTEXT://hadoop101:9094
log.dirs=/usr/local/kafka-logs/02
zookeeper.connect=hadoop101:2181,hadoop101:2182,hadoop101:2183
这里需要说明的是 log.dirs 指的是数据日志的存储位置 ,确切的说,就是分区数据的存储位置。程序运行日志的位置是通过同一目录下的 log4j.properties 进行配置的。
4 启动集群
分别指定不同配置文件,启动三个 Kafka 节点。启动后可以使用 jps 查看进程,此时应该有三个
zookeeper 进程和三个 kafka 进程。
bash
#在kafka目录下运行, & 后台运行
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
bin/kafka-server-start.sh config/server-3.properties &
停止kafka
bash
bin/kafka-server-stop.sh
5 创建测试主题
创建测试topic,一个分区 三个副本
bash
bin/kafka-topics.sh --create --bootstrap-server hadoop101:9092 \
--replication-factor 3 \
--partitions 1 --topic my-test-topic
创建后可以使用以下命令查看创建的主题信息:
bash
bin/kafka-topics.sh --describe --bootstrap-server hadoop101:9092 --topic my-test-topic
可以看到分区 0 的有 0,1,2 三个副本,且三个副本都是可用副本,都在 ISR(in-sync Replica 同步副本)
列表中,其中 0 为首领副本,此时代表集群已经搭建成功。