1、kafka官网下载地址。
链接:http://kafka.apache.org/downloads
2、上传安装包到服务器/opt/software,并解压到/opt/module
tar -zxvf kafka_2.11-0.9.0.1.tgz -C ../module/
3、创建一个存放消息的文件夹
cd /opt/module/kafka_2.11-0.9.0.1
mkdir logs
4、修改配置文件
cd /opt/module/kafka_2.11-0.9.0.1/config
vim server.properties
// 当前机器在集群中的唯一标识,和zookeeper的myid性质一样
broker.id=1
// 监听地址和端口号
listeners=PLAINTEXT://192.168.182.128:9092
// 消息存放的目录
log.dirs=/opt/module/kafka_2.11-0.9.0.1/logs
// zookeeper集群地址
zookeeper.connect=192.168.182.128:2181,192.168.182.131:2181,192.168.182.132:2181
这里注意的地方:listeners一定要配置成为IP地址;如果配置为localhost或服务器的hostname,在使用java发送数据时就会抛出异 常:org.apache.kafka.common.errors.TimeoutException: Batch Expired 。因为在没有配置advertised.host.name 的情况下,Kafka并没有像官方文档宣称的那样改为广播我们配置的host.name,而是广播了主机配置的hostname。远端的客户端并没有配置 hosts,所以自然是连接不上kafka。
5、把配置好的kafka打包发送到其他虚拟机进行配置
# 使用scp命令发送到其它两个机器的/opt/module目录
cd /opt/module/
scp -r kafka_2.11-0.9.0.1/ root@192.168.182.131:/opt/module/
scp -r kafka_2.11-0.9.0.1/ root@192.168.182.132:/opt/module/
6、传送完毕后在对应的机器上解压并且修改server.properties文件即可:
vim /opt/module/kafka_2.11-0.9.0.1/config/server.properties
# 机器在集群中的唯一标识 192.168.182.131
broker.id=2
listeners=PLAINTEXT://192.168.182.131:9092
# 机器在集群中的唯一标识 192.168.182.132
broker.id=3
listeners=PLAINTEXT://192.168.182.132:9092
7、配置环境变量(3台机器)
为了能够在任意目录启动kafka集群,我们需要配置环境变量。这不是搭建集群的必要操作,只不过如果不配置环境变量,那么每次启动kafka需要到安装文件的 bin 目录下去启动。
vim /etc/profile
# KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka_2.11-0.9.0.1
export PATH=$PATH:$KAFKA_HOME/bin
执行source /etc/profle使得环境变量生效
8、启动Kafka(3台机器)
kafka-server-start.sh -daemon server.properties