系统要求

Kafka 服务端代码是用 Scala 开发语言编写的,Scala 是 JVM 系语言中的一种,这意味着用 Scala 编写的源代码编译之后也是 Java 字节码,并运行在 Java 虚拟机上。因此,在开始安装 Kafka 之前,我们需要先在系统上安装 JDK(Java SE Development Kit, Java SE开发套件),JDK 包含的 JRE(Java SE Runtime Environment,Java 运行时环境)是运行 Java 应用程序所必需的。

多数情况下,推荐安装 JDK 8 及以上的版本,因为 Kafka 自 2.0.0 版本开始,就已经正式摒弃对 Java 7 的支持了。本文安装示例采用的是 JDK 8 版本。

在 CentOS 7 安装 JDK 可参考这篇博文—— CentOS7下安装JDK1.8

另外,运行 Kafka 还需要安装 Apache ZooKeeper 服务,该服务是用来同步分布式进程。ZooKeeper 安装可参考这篇博文——在CentOS7系统安装和配置ZooKeeper

安装Kafka

推荐将 Kafka 安装在 Unix 操作系统(如 Solaris)或 Linux 操作系统(如 CentOS)上。这是因为在 Windows 系统上可获得的支持有限。

本安装示例选择的是 CentOS 7 系统。具体安装步骤如下:

  1. 从 Kafka 官网下载页 https://kafka.apache.org/downloads 获取安装文件,当前最新的稳定版本是 2.4.1,于 2020 年 3 月 12 日发行。这里选择下载二进制文件 kafka_2.12-2.4.1.tgz

    1
    wget https://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.12-2.4.1.tgz
  2. 创建 Kafka 安装目录:

    1
    mkdir /usr/local/kafka
  3. 解压缩文件 kafka_2.12-2.4.1.tgz 至目录 /usr/local/kafka

    1
    tar xvzf kafka_2.12-2.4.1.tgz -C /usr/local/kafka --strip 1
  4. 进入目录 /usr/local/kafka,可以看到以下子目录:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@185 home]# cd /usr/local/kafka/
    [root@185 kafka]# ll
    总用量 56
    drwxr-xr-x 3 root root 4096 3月 3 08:34 bin
    drwxr-xr-x 2 root root 4096 3月 3 08:34 config
    drwxr-xr-x 2 root root 8192 3月 19 15:06 libs
    -rw-r--r-- 1 root root 32216 3月 3 08:32 LICENSE
    -rw-r--r-- 1 root root 337 3月 3 08:32 NOTICE
    drwxr-xr-x 2 root root 44 3月 3 08:34 site-docs

    其中,

    • /bin目录下是操作 Kafka 的可执行脚本(.sh 文件),还包含在 windows 系统下的可执行脚本(.bat 文件),包括 Kafka 启动/停止脚本、消费者性能测试脚本、生产者性能测试脚本、分区重分配脚本等;

    • /config目录是存放配置文件;

    • /libs目录是存放依赖库文件;

    • /logs目录存放的是 Kafka 的运行日志文件。

  5. 打开配置文件config/server.properties,修改 listeners 配置和 zookeeper 地址,具体如下:

    1
    2
    3
    4
    5
    6
    7
    vim ./config/server.properties

    # 监听地址
    listeners=PLAINTEXT://172.16.1.182:9092

    # zookeeper 地址
    zookeeper.connect=172.16.1.188:2181
  6. 在启动 Kafka 服务之前,为保障系统安全,添加运行 Kafka 服务的账号,并以较低权限账号运行 Kafka 服务,且禁用该账号的 ssh 登录权限。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 添加 kafka 账号
    useradd kafka

    # 设置 kafka 账号密码
    passwd kafka

    # 将目录的所有者和组设置为 kafka
    chown -R kafka:kafka /usr/local/kafka/

  7. 为保障系统安全,添加运行 Kafka 服务的账号,并以较低权限账号运行 Kafka 服务,且禁用该账号的登录权限。

    切换至 kafka 账号:

    1
    su kafka
  8. 启动 Kafka 服务,

    1
    ./bin/kafka-server-start.sh ./config/server.properties

    以守护进程(后台进程)的方式启动:

    1
    ./bin/kafka-server-start.sh ./config/server.properties &
  9. 停止 Kafka 服务:

    1
    ./bin/kafka-server-stop.sh

(END)