centos搭建kafka

文章目录

    • 环境
    • kafka下载和安装
      • kafka安装
        • kafka端口
      • zookeeper安装和启动
        • zookeeper端口
      • 使用kafka

环境

虚拟机

操作系统: Linux Centos8.0

$ cat /etc/redhat-release
# CentOS Linux release 8.0.1905 (Core) 

Linux 内核版本: 4.18

$ uname -r
# 4.18.0-80.11.2.el8_0.x86_64

kafka下载和安装

kafka安装

官网: Apache Kafka

同时还有其它几种kafka,这里不作介绍,只操作这个最流行的 Apache 版本

下载链接: kafka 镜像

这里就选择 2.5.0 版本

# 下载
$ curl -O http://mirrors.hust.edu.cn/apache/kafka/2.5.0/kafka_2.13-2.5.0.tgz

# 解压
$ tar xzvf kafka_2.13-2.5.0.tgz

# 进入目录并查看
# bin  config  libs  LICENSE  NOTICE  site-docs

bin 目录下有一系列kafka的操作命令,其中 sh 结尾的是 linux 系统使用的,还有个 windows 目录,里面放的是 windows 系统使用的命令。

config 目录下 server.properties 是服务器的配置文件,这里因为是单个Broker,所以不需要修改什么

kafka端口

kafka对外暴露 port:9092

zookeeper安装和启动

因为kafka是依赖于zookeeper的,所以这个也得安装好

下载链接: zookeeper 镜像 记得下载带 bin 的那个包,不然的话,就得自己编译,这个可以自己尝试

这里使用 3.5.7 版本

下载解压之后去到 bin 目录,以 *.cmd 后缀的都是 windows 的,*.sh 结尾的都是 linux 的

进入 config 目录,有个 zoo_sample.cfg 是配置文件示例,我们拷贝一份,修改名称为 zoo.cfg

$ cp zoo_sample.cfg zoo.cfg

查看zookeeper使用

$ ./zkServer.sh --help
# Usage: ./zkServer.sh [--config ] {start|start-foreground|stop|restart|status|print-cmd}

启动zookeeper

$ ./zkServer.sh start
# ZooKeeper JMX enabled by default
# Using config: /root/sofeware/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
# Starting zookeeper ... STARTED

如果启动失败,可以去 logs 目录看看日志,一般无法加载主类,就表明 Java 环境没有配置好,因为 zookeeper 是运行在 JVM 虚拟机上的,所以 $CLASSPATH 这个环境变量一定要配置

这里顺便把java环境配置了吧,找到自己使用的shell,然后去相应的配置文件下修改,我这里是 zsh,所以是配置文件是 ~/.zshrc

find / -name "jre" 找到自己的jre目录,作为 JAVA_HOME 变量的值

export JAVA_HOME=/usr/lib/jvm/jre
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

执行 source ~/.zshrc 使配置生效

此时再运行,应该没啥问题了

查看 zookeeper 运行状态

./zkServer.sh status
# ZooKeeper JMX enabled by default
# Using config: /root/sofeware/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
# Client port found: 2181. Client address: localhost.

zookeeper端口

zookeeper 对外暴露 port:2181

使用 lsof 查看

$ lsof -i:2181
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    28532 root   52u  IPv6  81667      0t0  TCP *:eforward (LISTEN)

此时我们还未用kafka连接我们的zookeeper,所以处于tcp的LISTEN状态

使用kafka

zookeeper启动好后,我们就来启动 kafka

$ ./kafka-server-start.sh -daemon ../config/server.properties # daemon 表示守护进程,也是是后台进程

使用 jps 命令查看当前系统JVM跑的进程有哪些

$ jps
# 28532 QuorumPeerMain # zookeeper 进程
# 30504 Kafka
# 30573 Jps

启动成功

此时再看看 zookeeper 的tcp连接状态

$ lsof -i:2181
# COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
# java    2249 root   52u  IPv6  30285      0t0  TCP *:eforward (LISTEN)
# java    2249 root   58u  IPv6  30617      0t0  TCP localhost:eforward->localhost:36384 (ESTABLISHED)
# java    2656 root  120u  IPv6  30616      0t0  TCP localhost:36384->localhost:eforward (ESTABLISHED)

你可能感兴趣的:(kafka,linux)