Kafka三节点集群搭建
一 整体步骤
- hosts配置
- 安装配置Zookeeper
- Kafka集群搭建
二 配置Hosts
-
修改hosts文件
1sudo vi /etc/hosts 2 3# 配置如下 4127.0.0.1 localhost 5192.168.0.100 master 6192.168.0.101 slave1 7192.168.0.102 slave2
三 安装配置Zookeeper
-
下载解压
1# 使用wget或本地下载后传到服务器 2cd /home/ 3sudo mkdir zookeeper 4cd /home/zookeeper 5sudo wget https://dlcdn.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz 6sudo tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
-
配置环境变量
1# 修改三台主机 2# sudo vi /etc/profile 3 4# 添加环境变量 5export ZOOKEEPER_HOME=/home/zookeeper/apache-zookeeper-3.5.9-bin 6export PATH=$ZOOKEEPER_HOME/bin:$PATH 7 8source /etc/profile
-
创建目录
1cd apache-zookeeper-3.5.9-bin 2sudo mkdir data 3sudo mkdir logs
-
修改配置
1cd conf 2sudo cp zoo_sample.cfg zoo.cfg 3sudo vi zoo.cfg 4 5tickTime=2000 6initLimit=10 7syncLimit=5 8dataDir=/home/zookeeper/apache-zookeeper-3.5.9-bin/data 9dataLogDir=/home/zookeeper/apache-zookeeper-3.5.9-bin/logs 10clientPort=2181 11 12# 如果为当前主机,则修改为0.0.0.0 13server.1=master:2287:3387 14server.2=slave1:2287:3387 15server.3=slave2:2287:3387
-
创建
myid
文件在各服务器节点(
master
、slave1
、slave2
)的dataDir
目录下创建名为myid
的文件,在文件第一行写上对应的 Server id1master: 2echo "1" > myid 3slave1: 4echo "2" > myid 5slave2: 6echo "3" > myid
-
启动测试
启动顺序决定leadert,follower
1# 分别在三台主机上 2cd /home/zookeeper/apache-zookeeper-3.5.9-bin/bin/ 3zkServer.sh start 4 5# 集群验证 6# 查看状态(需全部节点启动) 7zkServer.sh status
-
基本命令
1# 停止 2zkServer.sh stop
四 KafKa 集群搭建
-
下载解压
注意选择版本时,选择
Binary downloads
,不要选择Source download
!!!否则启动时会提示Could not find or load main class kafka.Kafka
,此时需要编译后才可以使用 。1cd /home 2mkdir Kafka 3cd Kafka 4mkdir data 5sudo wget https://archive.apache.org/dist/kafka/3.0.0/kafka_2.12-3.0.0.tgz 6tar -xzf kafka_2.12-3.0.0.tgz
-
修改配置
1cd kafka_2.12-3.0.0/config 2vi server.properties 3 4# 节点1 5# 群中每个节点的唯一标识 6broker.id=0 7# 监听地址 8listeners=PLAINTEXT://master:9092 9# 数据的存储位置 10log.dirs=/home/Kafka/data 11# Zookeeper连接地址 12zookeeper.connect=master:2181,slave1:2181,slave2:2181 13 14# 节点2 15broker.id=1 16listeners=PLAINTEXT://slave1:9092 17log.dirs=/home/Kafka/data 18zookeeper.connect=master:2181,slave1:2181,slave2:2181 19 20# 节点3 21broker.id=2 22listeners=PLAINTEXT://slave2:9092 23log.dirs=/home/Kafka/data 24zookeeper.connect=master:2181,slave1:2181,slave2:2181
-
启动
1# 三节点分别运行启动 2cd /home/Kafka/kafka_2.12-3.0.0 3bin/kafka-server-start.sh -daemon config/server.properties
-
测试
1bin/kafka-topics.sh --create --bootstrap-server master:9092 --replication-factor 1 --partitions 1 --topic test 2 3bin/kafka-topics.sh --list --bootstrap-server master:9092 4bin/kafka-topics.sh --describe --bootstrap-server master:9092 --topic test