安装环境:centOS 8
1. 安装JDK8
【略过】请参考其他博客。
2.安装并启动ZooKeeper(单机模式)
由于ZooKeeper是安装Kafka集群的必要组件,所以在安装kafka之前需要先把zookeeper安装好。
(1)下载并解压
可以从zookeeper官网,也可以从zookeeper镜像这里下载zookeeper安装包。
笔者这里下载的是3.5.10版本的。
下载之后,用tar -zxvf 命令解压安装包。解压后的目录如下:
(2)配置环境变量
用 vim /etc/profile 打开配置文件,并在配置文件的底部添加如下内容:
添加后保存。并执行 source /etc/profile 使配置生效。
(3)修改ZooKeeper的配置文件
进入解压后的目录,再进入conf目录,执行 cp zoo_sample.cfg zoo.cfg 命令,拷贝一份配置文件(之后要修改配置就在该配置文件上进行修改了)。
按照以下内容修改zoo.cfg 这个配置文件:
默认情况下,系统中并没有/tmp/zookeeper/data 和/tmp/zookeeper/log这两个目录,所以需要手动创建这两个目录。
(4)创建myid文件并设置服务器编号
在/tmp/zookeeper/data目录下创建一个myid文件,并写入一个数值,比如0。这里的0 表示的是服务器的编号。
(5)启动Zookeeper服务,并查看Zookeeper的服务状态
zkServer.sh start
zkServer.sh status
从下图可以看到ZooKeeper服务已经启动成功。
从zkServer.sh status 的执行结果可以看到 Mode: standlone, 这里表示的是启动的是ZooKeeper单机模式。
3. 安装并启动Kafka(单机模式)
(1)下载并解压
下载地址:Kafka镜像
笔者下载的是:kafka_2.12-2.8.1.tgz
(2)配置环境变量
保存后,切记执行 source /etc/profile 使配置生效。
(3)修改配置文件
进入kafka解压后的目录,再进入config目录,需要修改的是config目录下的server.properties。
按照下图内容修改server.properties文件。
(4)启动Kafka服务,并查看服务状态
注意:在启动Kafka服务之前需要确保zookeeper.connect参数所配置的ZooKeeper服务已经正常启动。
接着只要在 $KAFKA_HOME 目录下执行以下命令即可启动Kafka服务:
bin/kafka-server-start.sh -daemon config/server.properties
可以看到,Kafka服务已经启动成功。
4. 遇到了三个坑
(1)Kafka启动失败,提示内存不足。需要修改kafka-server-start.sh脚本里的参数。
一开始Xmx和Xms都是1G,由于笔者的服务器资源有限,因此改成如下配置。
(2)kafka启动成功后,笔者用下面这条命令准备创建一个topic,执行却报错,xxx无法识别。原因是kafka的版本过高,不支持该命令。
(3)换了低版本的kafka后(也就是现在这个版本),配置好之后重启,还是无法启动。原因是log.dirs=/tmp/kafka-logs 这个目录下已经有了日志,将这个目录下的文件清空即可启动成功。