Kafka——集群安裝部署(自带Zookeeper)

来自CloudWiki
Cloud17讨论 | 贡献2020年7月25日 (六) 05:06的版本
跳转至: 导航搜索

kafka简介

kafka官网:http://kafka.apache.org/

kafka下载页面:http://kafka.apache.org/downloads

kafka配置快速入门:http://kafka.apache.org/quickstart

新版本的kafka自带有zookeeper,本篇文章记录使用自带zookeeper搭建kafka集群。

环境准备

kafka版本:kafka_2.11-2.3.1.tgz

三台主机IP:192.168.128.130(master),192.168.128.131,192.168.128.132

下载解压kafka

在master、slave1、slav2上进行如下操作:

解压kafka

上传kafka安装包到slave1的/opt目录,解压缩

tar -zxf kafka_2.11-2.3.1.tgz -C /usr/local/

查看配置文件

[root@master ~]# cd /usr/local

[root@master local]# ls

apache-hive-1.2.1-bin  hbase-1.3.6       scala-2.11.5
bin                    include           share
etc                    kafka_2.11-2.3.1  spark-2.4.0-bin-hadoop2.6
flink-1.9.2            lib               src
flume                  lib64             zookeeper-3.4.6
games                  libexec
hadoop-2.6.5           sbin

[root@master local]# cd kafka_2.11-2.3.1/

[root@master kafka_2.11-2.3.1]# ll config

total 68
-rw-r--r--. 1 root root  906 Oct 18  2019 connect-console-sink.properties
-rw-r--r--. 1 root root  909 Oct 18  2019 connect-console-source.properties
-rw-r--r--. 1 root root 5321 Oct 18  2019 connect-distributed.properties
-rw-r--r--. 1 root root  883 Oct 18  2019 connect-file-sink.properties
-rw-r--r--. 1 root root  881 Oct 18  2019 connect-file-source.properties
-rw-r--r--. 1 root root 1552 Oct 18  2019 connect-log4j.properties
-rw-r--r--. 1 root root 2262 Oct 18  2019 connect-standalone.properties
-rw-r--r--. 1 root root 1221 Oct 18  2019 consumer.properties
-rw-r--r--. 1 root root 4727 Oct 18  2019 log4j.properties
-rw-r--r--. 1 root root 1925 Oct 18  2019 producer.properties
-rw-r--r--. 1 root root 6851 Oct 18  2019 server.properties
-rw-r--r--. 1 root root 1032 Oct 18  2019 tools-log4j.properties
-rw-r--r--. 1 root root 1169 Oct 18  2019 trogdor.conf
-rw-r--r--. 1 root root 1023 Oct 18  2019 zookeeper.properties

其中server.properties 和 zookeeper.properties 分别对应kafka和zookeeper的配置文件

建立日志目录

[root@master kafka_2.11-2.3.1]# pwd

/usr/local/kafka_2.11-2.3.1

[root@master kafka_2.11-2.3.1]# mkdir zookeeper #创建zookeeper数据目录

[root@master kafka_2.11-2.3.1]# mkdir log #创建日志目录

[root@master kafka_2.11-2.3.1]# mkdir log/zookeeper #创建zookeeper日志目录

[root@master kafka_2.11-2.3.1]# mkdir log/kafka #创建kafka日志目录

zookeeper配置

在master、slave1、slav2上进行如下操作:

修改 zookeeper.properties

进入config目录下,修改关键配置如下,3台服务器的zookeeper.properties配置文件都一样

##修改为自定义的zookeeper数据目录
dataDir=/usr/local/kafka_2.11-2.3.1/zookeeper

#修改为自定义的zookeeper日志目录
dataLogDir=/usr/local/kafka_2.11-2.3.1/log/zookeeper

# 端口
clientPort=2181

#注释掉
#maxClientCnxns=0

#设置连接参数,添加如下配置
tickTime=2000
initLimit=10
syncLimit=5

server.0=192.168.128.130:2888:3888
server.1=192.168.128.131:2888:3888
server.2=192.168.128.132:2888:3888

zookeeper数据目录添加myid配置

在各台服务器的zookeeper数据目录【/usr/local/kafka_2.11-2.3.1/zookeeper】添加myid文件,写入服务broker.id属性值

如这里的目录是/usr/local/kafka_2.11-1.0.0/zookeeper

注:3臺服務器都要添加myid文件,但值的內容不一樣,具體關係請見下圖:

第一台broker.id为0的服务

[root@master kafka_2.11-2.3.1]# cd zookeeper

[root@master zookeeper]# pwd

/usr/local/kafka_2.11-2.3.1/zookeeper

[root@master zookeeper]# echo 0 > myid

[root@master zookeeper]# cat myid

0

第二台broker.id为1的服务

[root@slave1 kafka_2.11-2.3.1]# cd zookeeper

[root@slave1 zookeeper]# pwd

/usr/local/kafka_2.11-2.3.1/zookeeper

[root@slave1 zookeeper]# echo 1 > myid

[root@slave1 zookeeper]# cat myid

1

第三台broker.id为2的服务

[root@slave2 kafka_2.11-2.3.1]# cd zookeeper

[root@slave2 zookeeper]# ls

[root@slave2 zookeeper]# echo 2 > myid

[root@slave2 zookeeper]# cat myid

2

kafka配置

进入/usr/local/kafka_2.11-2.3.1/config/,修改配置文件server.properties

broker.id=0 # broker 的全局唯一编号,不能重复
advertised.listeners=PLAINTEXT://192.168.128.130:9092 # 配置监听,修改为本机ip


############################# Log Basics #############################
# kafka 运行日志存放路径
log.dirs=/usr/local/kafka_2.11-2.3.1/log/kafka
# topic 在当前broker上的分片个数,与broker保持一致
num.partitions=3


############################# Zookeeper #############################

# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
#zookeeper.connect=localhost:2181
# 配置三台服务zookeeper连接地址
zookeeper.connect=192.168.128.130:2181,192.168.128.131:8081,192.168.128.132:8081


kafka启动

kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper


参考文档:

kafka自带zookeeper: https://www.cnblogs.com/caoweixiong/p/11060533.html