准备 zookeeper
kafka依赖zookeeper
kafka内置了zookeeper,在
kafka_2.12-2.4.1\libs目录下有zookeeper的jar包。
但一般不用内置的
kafka_2.12-2.4.1 版本 需要zookeeper 3.5.7 版本
注意:kafka 频繁与 zookeeper通信,所以通常部署在同一台服务器上
安装集群(linux)
集群规划
在 hadoop1、hadoop2、hadoop3 分别部署 kafka
在 hadoop1 上安装
登录到 hadoop1 虚拟机,执行下面操作
上传
上传到 /program 目录下
解压
解压 到 /program 目录下:
tar zxvf kafka_2.12-2.4.1.tgz --no-same-owner
配置kafka
kafka配置文件较多,在 kafka_2.12-2.4.1目录\config 目录下
server.properties:kafka服务配置文件
consumer.properties:消费者配置文件,用于命令操作,测试
producer.properties:生产者配置文件,用于命令操作,测试
zookeeper.properties:内置zookeeper配置文件,一般不用内置的
修改 server.properties 文件
进入 /program/kafka_2.12-2.4.1/config/ 目录
cd /program/kafka_2.12-2.4.1/config/
编辑该文件
vim server.properties
配置 broker.id
broker 相当于 节点,如果集群中有多个 broker,其 id 是不一样的,依次进行编号
broker.id=0
配置数据文件夹
修改配置如下:
log.dirs=/program/kafka_2.12-2.4.1/data
注意:这里名字是 log.dir 其实不是日志,是数据文件
配置kafka端口号
默认是9092
listeners=PLAINTEXT://:9092
解释:kafka有多种认证方式,PLAINTEXT 表示用的是 明文
配置zookeeper
配置zookeeper 集群服务器ip、端口号
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181
其他配置
一般不需要修改
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘 IO 的现成数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
同步文件
同步到 hadoop2
rsync -av /program/kafka_2.12-2.4.1 root@hadoop2:/program
同步到 hadoop3
rsync -av /program/kafka_2.12-2.4.1 root@hadoop3:/program
修改 server.properties 文件
修改 hadoop2 的 server.properties 文件
修改 broker.id,如下:
broker.id=1
修改 hadoop3 的 server.properties 文件
修改 broker.id,如下:
broker.id=2
配置 环境变量(可选)
vim /etc/profile.d/bigdata_env.sh
在末尾添加下面内容:
export KAFKA_HOME=/program/kafka_2.12-2.4.1
export PATH=${KAFKA_HOME}/bin:$PATH
立即生效:
source /etc/profile
同步环境变量
同步到 hadoop2
rsync -av /etc/profile.d/bigdata_env.sh root@hadoop2:/etc/profile.d/
登录 hadoop2,执行下面命令,立即生效
source /etc/profile
同步到 hadoop3
rsync -av /etc/profile.d/bigdata_env.sh root@hadoop3:/etc/profile.d/
登录 hadoop3,执行下面命令,立即生效
source /etc/profile