如何在 CentOS 上安装 Apache Kafka
Apache Kafka 是一个由 Apache 软件基金会开发、用 Java 和 Scala 编写的分布式流平台。 LinkedIn 最初开发了 Apache Kafka。
Apache Kafka 用于构建实时流数据管道,在系统和应用程序之间可靠地获取数据。它提供统一、高吞吐量、低延迟的实时数据处理。
本教程将向您展示如何在 CentOS 7 上安装和配置 Apache Kafka。本指南将涵盖 Apache Kafka 和 Apache Zookeeper 的安装和配置。
先决条件
- CentOS 7 服务器
- 根权限
我们会怎样做?
- 安装 Java OpenJDK 8
- 安装和配置 Apache Zookeeper
- 安装和配置 Apache Kafka
- 将 Apache Zookeeper 和 Apache Kafka 配置为服务
- 测试
第 1 步 - 安装 Java OpenJDK 8
Apache Kafka 是用 Java 和 Scala 编写的,因此我们必须在服务器上安装 Java。
使用下面的 yum 命令将 Java OpenJDK 8 安装到 CentOS 7 服务器。
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装完成后,检查安装的Java版本。
java -version
现在您已安装 Java OpenJDK 8。
第 2 步 - 安装 Apache Zookeeper
Apache Kafka 使用 Zookeeper 来选举控制器、集群成员资格和主题配置。 Zookeeper是一个分布式配置和同步服务。
在此步骤中,我们将使用二进制安装来安装 Apache Zookeeper。
在安装 Apache Zookeeper 之前,添加一个名为“zookeeper”的新用户,其主目录为“/opt/zookeeper”。
useradd -d /opt/zookeeper -s /bin/bash zookeeper
passwd zookeeper
现在转到“/opt”目录并下载 Apache Zookeeper 二进制文件。
cd /opt
wget https://www-us.apache.org/dist/zookeeper/stable/zookeeper-3.4.12.tar.gz
将zookeeper.tar.gz 文件提取到“/opt/zookeeper”目录,并将该目录的所有者更改为“zookeeper”用户和组。
tar -xf zookeeper-3.4.12.tar.gz -C /opt/zookeeper --strip-component=1
sudo chown -R zookeeper:zookeeper /opt/zookeeper
接下来,我们需要创建一个新的 Zookeeper 配置。
登录“zookeeper”用户并在“conf”目录下创建新配置“zoo.conf”。
su - zookeeper
vim conf/zoo.cfg
将以下配置粘贴到此处。
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
保存并退出。
基本的 Apache Zookeeper 配置已完成,它将在端口 2181 上运行。
第 3 步 - 下载并安装 Apache Kafka
在此步骤中,我们将安装并配置 Apache Kafka。
添加一个名为“kafka”的新用户,主目录为“/opt/kafka”。
useradd -d /opt/kafka -s /bin/bash kafka
passwd kafka
转到“/opt”目录并下载 Apache Kafka 压缩二进制文件。
cd /opt
wget http://www-eu.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
将 kafka_*.tar.gz 文件提取到“/opt/kafka”目录,并将所有文件的所有者更改为“kafka”用户和组。
tar -xf kafka_2.11-2.0.0.tgz -C /opt/kafka --strip-components=1
sudo chown -R kafka:kafka /opt/kafka
接下来,以“kafka”用户身份登录并编辑服务器配置。
su - kafka
vim config/server.properties
将以下配置粘贴到该行末尾。
delete.topic.enable = true
保存并退出。
Apache Kafka 已下载,基本设置已完成。
第 4 步 - 将 Apache Kafka 和 Zookeeper 配置为服务
本教程将 Apache Zookeeper 和 Apache Kafka 作为 systemd 服务运行。
我们需要为两个平台创建新的服务文件。
转到“/lib/systemd/system”目录并创建一个名为“zookeeper.service”的新服务文件。
cd /lib/systemd/system/
vim zookeeper.service
将以下配置粘贴到此处。
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
保存并退出。
接下来,为 Apache Kafka 创建服务文件“kafka.service”。
vim kafka.service
将以下配置粘贴到此处。
[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties'
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
保存退出,然后重新加载systemd管理系统。
systemctl daemon-reload
使用下面的 systemctl 命令启动 Apache Zookeeper 和 Apache Kafka。
systemctl start zookeeper
systemctl enable zookeeper
systemctl启动kafka
systemctl 启用 kafka
Apache Zookeeper 和 Apache Kafka 已启动并运行。 Zookeeper 在端口“2181”上运行,Kafka 在端口“9092”上运行,请使用下面的 netstat 命令进行检查。
netstat -plntu
第 5 步 - 测试
以“kafka”用户身份登录并转到“bin/”目录。
su - kafka
cd bin/
现在创建一个名为“HakaseTesting”的新主题。
./kafka-topics.sh --create --zookeeper localhost:2181 \
--replication-factor 1 --partitions 1 \
--topic HakaseTesting
并使用“HakaseTesting”主题运行“kafka-console- Producer.sh”。
./kafka-console-producer.sh --broker-list localhost:9092 \
--topic HakaseTesting
在 shell 上键入任意内容。
接下来,打开一个新终端,登录服务器,并以“kafka”用户身份登录。
运行“HakaseTesting”主题的“kafka-console-consumer.sh”。
./kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic HakaseTesting --from-beginning
当您从“kafka-console- Producer.sh”shell 键入任何输入时,您将在“kafka-console-consumer.sh”shell 上获得相同的结果。
CentOS 7 上 Apache Kafka 的安装和配置已成功完成。
参考
- https://kafka.apache.org/documentation/