kafka集群搭建
集群设置
主机3台 已配置好ssh免密,防火墙已关闭
master 192.168.1.101
slave1 192.168.1.102
slave2 192.168.1.103
准备
- 安装ZooKeeper
kafka集群是基于Zookeeper的,所以必须先安装好zookeeper集群
参考连接 Zookeeper集群搭建 - 安装Java 环境
参考链接 linux下配置Java环境
下载
配置&分发
以master节点为例,其他节点以此类推
上传下载好的压缩包至相应的服务器
我们放在/home/ubuntu/data/kafka
目录下
- 解压
tar -zxvf kafka_2.11-1.0.0.tgz -C /home/ubuntu/data/kafka/
- 修改配置
进入解压后的目录
cd /home/ubuntu/data/kafka
#创建日志文件夹
mkdir kafkaLog
修改配置文件
cd /home/ubuntu/data/kafka/config
vim server.properties
修改以下内容
broker.id=1
listeners=PLAINTEXT://192.168.1.101:9092
advertised.listeners=PLAINTEXT://192.168.1.101:9092
log.dirs=/home/ubuntu/data/kafka/kafkaLog
zookeeper.connect=192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181
解释:
broker.id :在Kafka集群中,每个broker都有一个唯一的id值用来区分彼此。必须配置
listeners :监听器,默认值PLAINTEXT://:9092,表示监听本机(127.0.0.1),这里必须要配置为本机的ip地址,否则在使用java发送消息时会报错
advertised.listeners :同listeners一样配置,必须要配置为本机的IP地址
log.dirs :日志文件的存放地址,必须配置
zookeeper.connect :zokeeper集群的服务地址,必须配置
- 分发
cd /home/ubuntu/data scp -r kafka/ root@slave1:$PWD scp -r kafka/ root@slave2:$PWD
分别修改配置文件中的broker.id的值,因为每台机器的broker.id在集群中必须是唯一的
分别修改配置文件中的listeners和advertised.listeners的值,比须要修改为对应机器的IP地址
配置环境变量
每台机器都要配置
进入当前用户目录
cd ~
vim .bashrc
在文件尾端添加如下内容
export export KAFKA_HOME=/home/ubuntu/data/kafka
export PATH=$PATH:$KAFKA_HOME/bin
保存退出,然后激活
source .bashrc
启动&停止
启动:
kafka-server-start.sh 配置文件路径
如:
kafka-server-start.sh /home/ubuntu/data/kafka/config/server.properties
停止:
kafka-server-stop.sh
以守护进程方式启动:
kafka-server-start.sh -daemon /home/ubuntu/data/kafka/config/server.properties 1>/dev/null 2>&1 &