基于大数据教程的环境:
192.168.101.11 centos7-01 192.168.101.12 centos7-02 192.168.101.13 centos7-03
搭建Kafka环境需要Zookeeper的前提:
https://www.cnblogs.com/mindzone/p/15468883.html
下载Kafka包
01 机器下载:
wget https://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz
解包到指定任意目录
tar -zxvf kafka_2.11-2.1.1.tgz -C /opt/module/
创建指定的kafka输出目录
# 创建日志目录(路径自定义)
mkdir -p /opt/module/kafka_2.11-2.1.1/logs
更改Kafka配置信息:
vim /opt/module/kafka_2.11-2.1.1/config/server.properties
参数项:
标黄的参数是需要更改的,其他参数基本是默认项,在源文件中就设定好了
#broker 的全局唯一编号,不能重复 broker.id=0 # 允许用户可以删除主题 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.dirslogs=/opt/module/kafka_2.11-2.1.1/logs #topic 在当前 broker 上的分区个数 num.partitions=1 #用来恢复和清理 data 下数据的线程数量 num.recovery.threads.per.data.dir=1 #segment 文件保留的最长时间,超时将被删除 log.retention.hours=168 # 配置连接 Zookeeper 集群地址 zookeeper.connect
追加环境变量:
vim /etc/profile.d/my_env.sh
写profile里面也是可以的,这里是单独区分了文件写的
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka_2.11-2.1.1
export PATH=$PATH:$KAFKA_HOME/bin
立即生效
source /etc/profile
将环境变量配置文件和kafka目录分发到其他机器上
xsync /etc/profile.d/my_env.sh
xsync /opt/module/kafka_2.11-2.1.1
# 无xsync脚本则用scp拷贝
scp /etc/profile.d/my_env.sh root@centos7-03:/etc/profile.d/
scp /etc/profile.d/my_env.sh root@centos7-04:/etc/profile.d/
scp /opt/module/kafka_2.11-2.1.1 root@centos7-03:/opt/module
scp /opt/module/kafka_2.11-2.1.1 root@centos7-04:/opt/module
然后更改其他机器上的kafka服务ID
#broker 的全局唯一编号,不能重复
broker.id=0
1号机默认0,2号机就改成1,3号机就改成2,总而言之服务的ID不能冲突
vim /opt/module/kafka_2.11-2.1.1/config/server.properties
集群启动Kafka
# 1 2 3 分别执行
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
集群关闭Kafka
# 1 2 3 分别执行
$KAFKA_HOME/bin/kafka-server-stop.sh stop
检查Kafka是否正常运行,JPS命令
[root@centos7-04 ~]# jps
11128 Kafka
1861 HRegionServer
1526 NodeManager
1705 SecondaryNameNode
1774 QuorumPeerMain
11342 Jps
若只是部署单例只需要更改ZK的客户端即可,也不用管服务ID
# 配置连接 Zookeeper 集群地址,单例则写一个即可 zookeeper.connect