kfaka是一个分布式的基于发布、订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。(传统使用)
kfaka是一个开源的分布式事件流平台(enent streaming platform),被千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。(最新定位)
官方网站:http://kafka.apache.org/
1.集群规划 :在集群其他节点上安装zookeeper。
2.下载安装包:http://kafka.apache.org/downloads.html
3.集群部署:
1)解压安装包
[xxx@hadoop102 software]$ tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/
2)修改解压后的文件名称
[xxx@hadoop102 module]$ mv kafka_2.11-2.4.1 kafka
3)修改配置文件
[xxx@hadoop102 kafka]$ cd config/ [xxx@hadoop102 config]$ vim server.properties
输入以下内容:
#broker的全局唯一编号,不能重复 broker.id=0 #删除topic功能使能,当前版本此配置默认为true,已从配置文件移除 delete.topic.enable=true #处理网络请求的线程数量 num.network.threads=3 #用来处理磁盘IO的线程数量 num.io.threads=8 #发送套接字的缓冲区大小 socket.send.buffer.bytes=102400 #接收套接字的缓冲区大小 socket.receive.buffer.bytes=102400 #请求套接字的缓冲区大小 socket.request.max.bytes=104857600 #kafka数据存放的路径 log.dirs=/opt/module/kafka/datas #topic在当前broker上的分区个数 num.partitions=1 #用来恢复和清理data下数据的线程数量 num.recovery.threads.per.data.dir=1 #segment文件保留的最长时间,超时将被删除 log.retention.hours=168 #配置连接Zookeeper集群地址,需要我们配置三个,否则其中一个zookeeper 宕机了,kafka会默认zookeeper不能使用,因此我们需要对kafka配三台zookeeper zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
4)配置环境变量
#KAFKA_HOME export KAFKA_HOME=/opt/module/kafka export PATH=$PATH:$KAFKA_HOME/bin
别忘了source一下
5)分发kafka到其他集群节点,配置环境变量并修改/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2。
注意:broker.id不允许重复
6)启动集群
先启动zookeeper:[xxx@hadoop102 kafka]$ zk.sh start
依次在hadoop102、hadoop103、hadoop104节点上启动kafka
[xxx@hadoop102 kafka] bin/kafka-server-start.sh -daemon config/server.properties [xxx@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties [xxx@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
7)关闭集群
[xxx@hadoop102 kafka]$ bin/kafka-server-stop.sh stop [xxx@hadoop103 kafka]$ bin/kafka-server-stop.sh stop [xxx@hadoop104 kafka]$ bin/kafka-server-stop.sh stop
**注意:一定要先将kafka完全关闭后再关闭zookeeper,否则会出现一系列棘手的问题,最后只能完全删除kafka**



