一、下载&安装

1、下载安装包http://kafka.apache.org/downloads.html

 2、将安装包传到服务器

cd /opt
sudo rz

3、解压

sudo tar -zxvf kafka_2.12-2.2.0.tgz

二、zookeeper集群配置及启动(集群至少3个节点)

     若使用非自带zookeeper,配置基本一样,修改的是zookeeper相关配置文件,调用zookeeper的sh进行启动即可
1、进入kafka的config的目录:

cd kafka_2.12-2.2.0/config/

2、先建立zk集群,直接使用kafka自带的zookeeper建立zk集群,修改zookeeper.properties文件 建立zookper集群

sudo vi zookeeper.properties
#修改dataDir
dataDir=/data/zookeeper
dataLogDir=/data/zookeeper/logs

#加入:
maxClientCnxns=100
tickTime=2000
initLimit=10
syncLimit=5
server.1=10.10.40.31:2888:3888   #集群地址1
server.2=10.10.40.32:2888:3888   #集群地址2
server.2=10.10.40.33:2888:3888   #集群地址2

3、建立data及log目录(即:zookeeper.properties中配置的目录)

sudo mkdir -p /data/zookeeper
sudo mkdir -p /data/zookeeper/logs

3、进入zookeeper数据目录(/data/zookeeper),创建myid文件,将三个服务器上的myid文件分别写入1,2,3

-myid是zk集群用来发现彼此的标识,必须创建,且不能相同;

cd /data/zookeeper
sudo vi myid

写入和zookeeper.properties对应的server.序号,如:

1

4、进入kafka目录 执行启动zookeeper命令:(启动用可用ps aux|grep zookeeper 检查是否已启动)

sudo nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties &

建议先执行:sudo nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties &

若出现exec: java: not found,则说明JAVA环境配置有问题。

sudo ./bin/zookeeper-server-start.sh ./config/zookeeper.properties & [1] 1180 [oauser@vtoaet01 kafka_2.12-2.2.0]$ /opt/kafka_2.12-2.2.0/bin/kafka-run-class.sh: line 306: exec: java: not found

如果不是用sudo,出现上面的错误。则执行java,看是否有异常,进行etc/profile环境变量的配置。

若用sudo,/etc/profile环境变量配置也正常,则执行sudo java,若sudo java报错:sudo: java: command not found
需修改/etc/sudoers (修改此文件需小心,若此文件修改错误,会导致sudo命令无法使用,必须用root执行visudo将此文件修改正确才可以

sudo vi /etc/sudoers

在secure_path中增加java/bin目录

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/java/jdk1.8/bin

保存,再执行sudo java进行验证

 

三、 搭建kafka集群

1、修改server.properties配置文件

sudo vi config/server.properties

主要修改以下内容:

broker.id=1  #和zookeeper配置中的server.id一致
advertised.listeners=PLAINTEXT://10.10.40.31:9092
listeners=PLAINTEXT://10.10.40.31:9092
log.dirs=/data/kafka-logs
#分区数目:默认num.partitions=1,一般情况下等于broker数量
num.partitions=3
zookeeper.connect=10.10.40.32:2181,10.10.40.31:2181,10.10.40.33:2181

server.properties配置文件的修改主要在开头和结尾,中间保持默认配置即可;需要注意的点是broker.id的值三个节点要配置不同的值,分别配置为0,1,2;log.dirs必须保证目录存在,不会根据配置文件自动生成;

2、创建日志目录

sudo mkdir -p /data/kafka-logs

3、启动

sudo nohup ./bin/kafka-server-start.sh –daemon config/server.properties &

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

依次配置三台服务器,集群搭建完毕,可生产、消费消息进行验证一下。

 

四、集群搭建验证

1、进入kafka根目录,创建topic--test

./bin/kafka-topics.sh --create --zookeeper 10.10.40.31:2181,10.10.40.32:2181,10.10.40.33:2181 --replication-factor 1 --partitions 1 --topic kellytest

2、列出已创建的topic列表

./bin/kafka-topics.sh --zookeeper 10.10.40.31:2181  --list

3、模拟客户端去发送消息

./bin/kafka-console-producer.sh --broker-list 10.10.40.31:9092,10.10.40.32:9092,10.10.40.33:9092 --topic kellytest

4、模拟客户端去接受消息

./bin/kafka-console-consumer.sh --bootstrap-server 10.10.40.31:9092,10.10.40.32:9092,10.10.40.33:9092 --from-beginning --topic kellytopic