一、下载&安装
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