概览
1.上传解压
2.修改配置文件
3.分发到其他节点下
4.启动
5.测试
6.注意
准备
安装好Zookeeper
JDK版本:1.8.0_141
Kafka版本:kafka_2.12-1.1.0
工具:Xshell 5,Xftp 5
1.上传解压
首先在master(随意一台)的主机上的/usr下创建kafka文件夹作为安装路径
1 | [root@master ~]# cd /usr/ |
然后利用Xftp将压缩包上传到/usr/kafka下并解压
1 | [root@master usr]# cd kafka/ |
1 | [root@master kafka]# ls |
2.修改配置文件
修改 /usr/kafka/kafka_2.12-1.1.0/config/server.properties
1 | [root@master kafka]# cd kafka_2.12-1.1.0/config/ |
只修改broker.id和zookeeper就行
将
修改为
broker.id每台主机上都不一样
将
修改为
保存退出
这是比较详细的配置(其实只要按照上面的更改即可)
1 | #broker的全局唯一编号,不能重复 |
3.分发到其他节点下
1 | [root@master config]# scp -r /usr/kafka/ root@slave1:/usr/ |
然后分别在slave1和slave2上更改broker id
1 | vim /usr/kafka/kafka_2.12-1.1.0/config/server.properties |
将broker id改为02和03
4.启动
确保防火墙关闭
首先全部启动Zookeeper,参考Zookeeper安装中的启动
再全部启动kafka
1 | # 由于没配置环境变量,所以需要进入安装目录下启动 |
查看jps
5.测试
在master上创建topic-test
1 | [root@master kafka_2.12-1.1.0]# ./bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --replication-factor 3 --partitions 3 --topic test |
在master,slave1,2上查看已创建的topic列表
1 | ./bin/kafka-topics.sh --list --zookeeper localhost:2181 |
在master上启动生产者
1 | [root@master kafka_2.12-1.1.0]# ./bin/kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic test |
随意输入一些内容
在其他节点上启动控制台消费者
1 | ./bin/kafka-console-consumer.sh --bootstrap-server master:9092,slave1:9092,slave2:9092 --from-beginning --topic test |
会出现
--from-beginning
如果去掉不会出现消费者启动之前的消息
测试:在生产者输入内容,消费者查看消息
删除主题:
1 | ./bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test |
6.注意
如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion
你可以通过命令:./bin/kafka-topics –zookeeper 【zookeeper server】 –list
来查看所有topic此时你若想真正删除它,可以如下操作:
(1)登录zookeeper客户端:命令:./bin/zookeeper-client
(2)找到topic所在的目录:ls /brokers/topics
(3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,
如果你删除了此处的topic,那么marked for deletion 标记消失
zookeeper 的config中也有有关topic的信息: ls /config/topics/【topic name】暂时不知道有什么用