1.下载kafka,地址如下:
https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.6.0/kafka_2.12-2.6.0.tgz
2. 上传kafka
3.解压kafka到/usr/local目录,使用以下命令:
sudo tar -xvf kafka_2.12-2.6.0.tgz -C /usr/local/
4.重命名解压后的目录为kafka,使用以下命令:
sudo mv /usr/local/kafka_2.12-2.6.0/ /usr/local/kafka
5.修改kafka目录的创建者为hadoop,使用以下命令:
sudo chown -R hadoop /usr/local/kafka/
6.修改kafka的配置文件,执行以下操作:
a) 编辑config/server.properties文件,使用以下命令:
vim /usr/local/kafka/config/server.properties
b) 修改第21行为以下内容:
broker.id=1
c) 修改第123行为以下内容:
zookeeper.connect=master:2181,slave1:2181,slave2:2181
7.修改环境变量,执行以下操作:
a) 编辑环境变量,使用以下命令:
vim /home/hadoop/.bashrc
b) 在文件最后追加以下内容:
export KAFKA_HOME=/usr/local/kafka
export PATH=${KAFKA_HOME}/bin:$PATH
c) 刷新环境变量,使用以下命令:
source /home/hadoop/.bashrc
8.发送kafka给slave1执行以下操作:
a) 在slave1创建/usr/local/kafka目录,使用以下命令:
sudo mkdir /usr/local/kafka
b) 修改kafka目录的创建者为hadoop,使用以下命令:
sudo chown -R hadoop /usr/local/kafka/
c) 在master发送kafka目录给slave1,使用以下命令:
scp -r /usr/local/kafka
d) 在slave1修改/usr/local/kafka/config/server.properties文件中的broker.id=2
e) 在master发送环境变量给slave1,使用以下命令:
scp /home/hadoop/.bashrc hadoop@slave2:/home/hadoop/
f) 在slave1刷新环境变量,使用以下命令:
source /home/hadoop/.bashrc
9.参考第8步,发送kafka给slave2,并修改/usr/local/kafka/config/server.properties文件中的broker.id=3
kafka的使用步骤如下:
1.启动3个节点上的Zookeeper,在3个节点分别执行以下命令:
zkServer.sh start
2.启动3个节点上的kafka,在3个节点分别执行以下命令:
kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties &
3.通过jps命令,查看kafka的进程,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1d2fed1932484b408072706296aaac5d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd3lqdQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
4.创建一个名字为spark,分区数为3,备份数为3的主题,在任意节点执行以下命令:
kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --replication-factor 3 --partitions 3 --topic spark
5.查看kafka目前已有的主题,使用以下命令:
kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181
6.启动kafka的控制台生产者,向spark主题写入数据,在任意节点执行以下命令:
kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic spark
7.启动kafka的控制台消费者,从spark主题读取数据,在任意节点执行以下命令:
kafka-console-consumer.sh --bootstrap-server master:9092,slave1:9092,slave2:9092 --topic spark --from-beginning
8.通过生产者向kafka的spark主题写入一些消息,并查看是否能消费到数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/45dba6d79abe46709e9a4468d759eeaf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd3lqdQ==,size_20,color_FFFFFF,t_70,g_se,x_16)