Kafka安装与配置-cnblog
安装与配置Kafka高可用集群模式
进入主节点hadoop01的software子目录
cd /usr/software/
将Kafka下载到software目录下
wget https://mirrors.huaweicloud.com/apache/kafka/2.8.1/kafka_2.12-2.8.1.tgz
解压到App目录下
tar -zxvf kafka_2.12-2.8.1.tgz -C /usr/app
解压后进入kafka目录下
cd /usr/app/kafka_2.12-2.8.1/
新建log目录
mkdir logs
进入kafka目录下的config目录
cd /usr/app/kafka_2.12-2.8.1/config
打开此目录下的server.properties文件
vi server.properties
对照以下代码进行修改



返回到app目录
cd /usr/app
将配置号的Kafka复制到节点hadoop02、hadoop03
scp -r kafka_2.12-2.8.1/ root@hadoop02:/usr/app/
scp -r kafka_2.12-2.8.1/ root@hadoop03:/usr/app/
进入hadoop02节点的conf目录下
cd /usr/app/kafka_2.12-2.8.1/config
编辑server.properties文件
vi server.properties


进入hadoop03节点的conf目录下进行同样操作

在所有节点上修改环境变量
vi /etc/profile
在打开的文件中追加以下内容
export KAFKA_HOME=/usr/app/kafka_2.12-2.8.1
export PATH=$PATH:/$KAFKA_HOME/bin
执行命令,使修改生效
source /etc/profile
启动Kafka集群
在所有节点上开启zookeeper和kafka
zkServer.sh start
kafka-server-start.sh -daemon /usr/app/kafka_2.12-2.8.1/config/server.properties
执行以下命令查看启动情况
jps

如果要停止kafka在所有节点上执行以下命令
kafka-server-stop.sh -daemon /usr/app/kafka_2.12-2.8.1/config/server.properties
定制kafka启动与退出脚本
进入kafka的bin目录
cd /usr/app/kafka_2.12-2.8.1/bin
在此目录下创建kafka的启动脚本
vi start-kafka.sh
在文件中写入以下代码
kafka-server-start.sh -daemon /usr/app/kafka_2.12-2.8.1/config/server.properties
再创建一个kafka的退出脚本文件
vi stop-kafka.sh
修改这两个文件的权限
chmod u+x start-kafka.sh
chmod u+x stop-kafka.sh
将这两个脚本复制到集群中其他两个节点的相同目录下
scp start-kafka.sh root@hadoop02:$PWD
scp stop-kafka.sh root@hadoop02:$PWD
scp start-kafka.sh root@hadoop03:$PWD
scp stop-kafka.sh root@hadoop02:$PWD
在所有节点上依次执行以下命令测试启动脚本
zkServer.sh start
start-kafka.sh
使用jps检测结果

在所有节点上执行以下命令测试退出Kafka集群
stop-kafka.sh
对Kafka集群进行高可用测试
测试前的准备
在主节点Hadoop上,执行以下命令创建一个名称为`test``带有两个partition、两个副本的Topic
kafka-topics.sh --create --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --replication-factor 2 --partitions 2 --topic test
查看Topic(test)的状态
kafka-topics.sh --describe --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 -topic test

查看kafka中已存在的所有topic可以使用以下命令
kafka-topics.sh --list --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181
❗若在创建testTopic的时候遇见如下错误:
log4j:ERROR Could not read configuration file from URL [file://usr/app/kafka_2.12-2.8.1/bin/../config/tools-log4j.properties].
这是Log4j 配置文件路径解析错误。
解决方法:修改 Kafka 的 工具脚本配置文件
- 编辑
kafka-run-class.sh脚本
vi /usr/app/kafka_2.12-2.8.1/bin/kafka-run-class.sh
找到类似如下代码块,将路径修改为绝对路径

- 同步到所有节点
scp /usr/app/kafka_2.12-2.8.1/bin/kafka-run-class.sh root@hadoop02:/usr/app/kafka_2.12-2.8.1/bin/
scp /usr/app/kafka_2.12-2.8.1/bin/kafka-run-class.sh root@hadoop03:/usr/app/kafka_2.12-2.8.1/bin/
- 重新创建
testTopic即可
kafka-topics.sh --create --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --replication-factor 2 --partitions 2 --topic test
高可用测试
在hadoop03节点上执行以下命令,找到hadoop03节点上的broker服务器的进程号
jps

在hadoop03节点上停掉broker服务
kill -9 4024
整个Kafka集群中的Topic(test)的状态就会发生变化,在集群中任意节点执行以下命令查看Topic(test)的状态
kafka-topics.sh --describe --zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 --topic test

返回的结果表示分区0处于leader状态的服务器由原来的2转换成了0,即节点hadoop01,结果表明Kafka在失去其中一台broker服务器后仍正常运行

浙公网安备 33010602011771号