目标机器
1.1. Kafka1
内网 IP:192.168.0.45 服务器系统:CentOS 7.6
1.2. Kafka2
内网 IP:192.168.0.95 服务器系统:CentOS 7.6
1.3. Kafka3
内网 IP:192.168.0.9 服务器系统:CentOS 7.6
依赖安装
安装 zookeeper、kafka 确定三台(zookeeper、kafka1、kafka2、kafka3)
服务器 java 依赖已经安装,具体安装方式:
yum install java-1.8.0
验证,查询 java 的 version
输入 java -version
Kafka安装
(1)软件下载
三台服务器(kafka1、kafka2、kafka3)通过 wget 下载安装 kafka 安装包并解压具 体命令:采用国内镜像的方式下载比较快
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.8.1/kafka_2.12-2.8.1.tgz --no-check-certificate
tar xvf kafka_2.12-2.8.1.tg
(2)Zookeeper服务
服务器1:
新建 data/zookeeper 目录和 log/zookeeper 目录
mkdir -p /root/data/zookeeper
mkdir -p /root/log/zookeeper
这一台我们用的是 192.168.0.45 这台
新建文件 myid,写入 1
echo 1 > /root/data/zookeeper/myid
服务器2:
新建 data/zookeeper 目录和 log/zookeeper 目录
mkdir -p /root/data/zookeeper
mkdir -p /root/log/zookeeper
这一台我们用的是 192.168.0.95 这台
新建文件 myid,写入 2
echo 2 > /root/data/zookeeper/myid
服务器3:
新建 data/zookeeper 目录和 log/zookeeper 目录
mkdir -p /root/data/zookeeper
mkdir -p /root/log/zookeeper
这一台我们用的是 192.168.0.9 这台
新建文件 myid,写入 3
echo 3 > /root/data/zookeeper/myid
配置zookeeper.properties
vi /root/kafka_2.12-2.8.1/config/zookeeper.properties
3 台 zookeeper 的配置文件可以配置成一样的,在 config/zookeeper.properties 中进 行改动,改动的地方如下:
dataDir=/root/data/zookeeper
server.1=192.168.0.45:2888:3888
server.2=192.168.0.95:2888:3888
server.3=192.168.0.9:2888:3888
initLimit=10
tickTime=2000
syncLimit=5
(3)Kafka服务部署
kafka存储目录创建
在 Kafka1 服务器(192.168.0.45)执行
cd /root , vi kafka_2.12-2.8.1/config/server.properties
修改配置文件
broker.id=1
listeners=PLAINTEXT://192.168.0.45:9092
host.name=192.168.0.45
zookeeper.connect=192.168.0.95:2181,192.168.0.45:2181,192.168.0.9:2181 下面箭头的地方是需要修改的地方
在Kafka2服务器(192.168.0.95)执行
cd /root , vi kafka_2.12-2.8.1/config/server.properties
修改配置文件
broker.id=2
listeners=PLAINTEXT://192.168.0.95:9092
host.name=192.168.0.95
zookeeper.connect=192.168.0.95:2181,192.168.0.45:2181,192.168.0.9:2181
在 Kafka3 服务器(192.168.0.9)执行
cd /root , vi kafka_2.12-2.8.1/config/server.properties
修改配置文件
broker.id=3
listeners=PLAINTEXT://192.168.0.9:9092
host.name=192.168.0.9
zookeeper.connect=192.168.0.95:2181,192.168.0.45:2181,192.168.0.9:2181
kafka 服务启动
先启动 zookeeper
cd /root
nohup./kafka_2.12-2.8.1/bin/zookeeper-server-start.sh /root/kafka_2.12-2.8.1/config/zookeeper.properties &
然后启动 kafka
nohup ./kafka_2.12-2.8.1/bin/kafka-server-start.sh ./kafka_2.12-2.8.1/config/server.properties &
此时查看端口 2181 和 9092,显示 zookeeper 和 kafka 已经启动成功
在 3 台服务器上面都执行这个命令,保证 3 台服务器的 kafka 均启动成功 三个节点均要启动;启动无报错,即搭建成功
zookeeper、Kafka集群验证
(1)创建topic:TestTopic
在Kafka2上面创建topic:
cd kafka_2.12-2.8.1 ./bin/kafka-topics.sh --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic --create
(2)显示已经创建的topic
在 kafka1 和 3 上面显示创建的 topic:testTopic
输入命令:
/root/kafka_2.12-2.8.1/bin/kafka-topics.sh --list --zookeeper localhost:2181
(3)模拟客户端发送消息
在 kafka1 上面发布消息,命令如下:
./kafka_2.12-2.8.1/bin/kafka-console-producer.sh --broker-list 192.168.0.9:9092,192.168.0.45:9092,192.168.0.95:9092 --topic testTopic
(4)模拟客户端接收消息
在 kafka2 和 kafka3 上面查看消息,输入命令:
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.95:9092 --topic testTopic --from-beginning ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.9:9092 --topic testTopic --from-beginning
可以看到消息完全一致,至此集群完成。