安装并配置kafka
下载相对应版本的kafka,例如本篇使用的就是kafka_2.11-2.3.1.tgz
。
使用命令tar -zxvf kafka_2.11-2.3.1.tgz
进行解压。
然后可以删除压缩包,rm -rf kafka_2.11-2.3.1.tgz
进入kafka
目录,创建logs目录,mkdir logs
接着进入kafka/config
目录,修改配置文件 vi server.properties
# 每一台broker必须有唯一的一个id【重点】
broker.id=1
# 处理网络请求的线程数量
num.network.threads=3
# 用来处理磁盘IO的线程数量
num.io.threads=8
# 日志目录 修改为之前创建的目录
log.dirs=/opt/kafka/logs
# 分区数
num.partitions=1
# 配置Zookeeper 地址【重点】
zookeeper.connect=node001:2181,node002:2181,node003:2181
配置zookeeper地址时,里面的node001,node002,node003。
如果使用节点名称,那就必须在/etc/hosts
文件中进行声明,如果不想声明,那就直接使用ip地址。
配置好之后,进行分发,发送给其他节点。
scp -r /opt/kafka root@node002:/opt
scp -r /opt/kafka root@node003:/opt
将node001 opt目录下的kafka使用scp命令发送到node002,node003的opt目录下
注意:发送过之后要将node002,node003中config的server配置文件中broker.id修改为唯一。比如node002修改为2,003修改为3,分别是1,2,3
分别在三台虚拟机上配置环境变量
vi ~/.bash_profile
添加:export KAFKA_HOME=/opt/kafka
在PATH后添加::$KAFKA_HOME/bin
保存并退出
之后使用source ~/.bash_profile
,更新环境变量。
配置完成,开始启动。
先在三台虚拟机上执行:zkServer.sh start
,启动zookeeper
三台虚拟机上分别使用zkServer.sh status
查看zookeeper启动效果,应该有一个leader,两个follower
然后在三台虚拟机上执行如下命令,启动kafka
kafka-server-start.sh -daemon /opt/kafka/config/server.properties
上面的-daemon
,是守护进程,也就是后台运行。
然后在三台虚拟机上分别是用jps查看进程
上面的QuorumPeerMain
进程是zookeeper的进程。如果三台虚拟机上都有这三个进程,并且过几分钟不自动挂掉,那就说明启动成功。接下来就可以进行kafka的基本操作。
停止执行:
kafka-server-stop.sh stop