Kafka集群环境需要以下环境支持:
- Java环境(kafka新版本要求Java8)
- Zookeeper环境
Java环境搭建
按照相关教程搭建java环境
zookeeper环境搭建
- 搭建好Java环境
- 官网下载zookeeper tar包,地址,我下载的是zookeeper-3.4.10.tar.gz
- 将下载下来的压缩包上传到指定服务器相关目录(/data/bigdata),并解压,命令:
[root@localhost bigdata]# tar -zxvf zookeeper-3.4.10.tar.gz #解压
[root@localhost bigdata]# cd zookeeper-3.4.10
[root@localhost zookeeper-3.4.10]# mv conf/zoo_sample.cfg zoo.cfg #重命名配置文件
- 修改配置文件,主要修改以下几个地方:
# 数据文件存放地址
dataDir=/data/bigdata/zookeeper-3.4.10/data
# log 文件存放地址
dataLogDir=/data/bigdata/zookeeper-3.4.10/log
# 端口
clientPort=2181
# 监听端口
server.1=192.168.19.25:2888:3888 #192.168.19.25 server id为1
server.2=192.168.19.32:2888:3888 #192.168.19.32 server id为2
server.3=192.168.19.33:2888:3888 #192.168.19.33 server id为3
- 新建数据存放文件的data目录(配置文件中dataDir所指向的路径):
[root@localhost zookeeper-3.4.10]# mkdir data #新建data目录
[root@localhost data]# vi myid #新建myid文件
[root@localhost data]# echo 1>>myid #写入server1的id为1
- 将server1的zookeeper包拷贝到32和33
[root@localhost zookeeper-3.4.10] scp -r ../zookeeper-3.4.10 root@192.168.19.32:/data/bigdata #拷贝到32
[root@localhost zookeeper-3.4.10] scp -r ../zookeeper-3.4.10 root@192.168.19.33:/data/bigdata #拷贝到33
分别将zookeeper data目录下的myid文件作相应的修改(32的myid修改为2,33的myid修改为3)
- 启动zookeeper:
[root@localhost zookeeper-3.4.10]# bin/zkServer.sh start
分别启动三台server,使用jps命令看到如下进程
[root@localhost data]# jps
4119 QuorumPeerMain
19147 Jps
表示zookeeper启动完成。
kafka环境部署
- 下载kafka压缩包,地址
- 上传到对应服务器的相关目录,比如/data/bigdata,并解压缩
- 修改配置文件,配置文件在config/server.properties,主要修改以下位置:
# broker.id参数,需保证同一集群内参数唯一,integer
broker.id=32
listeners=PLAINTEXT://192.168.19.32:9092
host.name=192.168.19.32
advertised.listeners=PLAINTEXT://192.168.19.32:9092
max.request.size=50000000
# kafka 数据存放目录
log.dirs=/data/bigdata/kafka/kafka-logs
# 数据存放时间
log.retention.hours=24
# zookeeper连接地址
zookeeper.connect=192.168.19.25:2181,192.168.19.32:2181,192.168.19.33:2181
# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000
# 删除topic
delete.topic.enable=true
# 自动创建topic
auto.create.topics.enable=false
# topic一次存取的最大数据量
message.max.byte=52428800
其他几台服务器作相应的修改,但必须保证broker.id参数在一个kafka集群里唯一!
- kafka内存分配
kafka对内存的要求不是特别高,默认1G,可以根据服务器的实际情况分配内存大小,修改位置:
[root@localhost kafka]# vi bin/kafka-server-start.sh
...
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G" ##修改内存大小,这里修改为4G
fi
...
5.启动kafka,分别在各台服务器启动kafka进程
[root@localhost kafka]# bin/kafka-server-start.sh -daemon config/server.properties #后台启动kafka进程
- 使用jps命令查看进程:
[root@localhost kafka]# jps
20754 Jps
18422 Kafka
4119 QuorumPeerMain
表示kafka启动成功!
kafka manager安装
kafka manager用于查看kafka集群,以及针对kafka的topic进行一些配置工作,安装相当简单:
- 下载安装包,地址
- 解压该zip包并上传至服务器相关目录
drwxr-xr-x. 7 root root 143 Jul 2 16:54 kafka-manager
- 修改配置文件conf/application.conf添加kafka的zookeeper地址,如下:
kafka-manager.zkhosts="192.168.19.25:2181,192.168.19.32:2181,192.168.19.33:2181"
- 启动kafkaManager
[root@localhost kafka-manager]# nohup bin/kafka-manager &
- 访问http://[hostip]:9000即可