在Ubuntu 14.04上安装Apache Kafka的方法

简介: 在Ubuntu 14.04上安装Apache Kafka的方法

简介

Apache Kafka 是一个流行的分布式消息代理,旨在高效处理大量实时数据。Kafka 集群不仅高度可扩展和容错,而且与其他消息代理(如 ActiveMQ 和 RabbitMQ)相比,吞吐量也更高。虽然它通常用作发布/订阅消息系统,但许多组织也将其用于日志聚合,因为它为发布的消息提供了持久存储。

在本教程中,您将学习如何在 Ubuntu 14.04 上安装和使用 Apache Kafka 0.8.2.1。

先决条件

要跟随本教程,您需要:

  • Ubuntu 14.04 Droplet
  • 至少 4GB 的交换空间

步骤 1 —— 为 Kafka 创建用户

由于 Kafka 可以通过网络处理请求,因此您应该为其创建一个专用用户。这样可以最大程度地减少 Kafka 服务器受损对 Ubuntu 机器造成的影响。

以 root 身份使用 useradd 命令创建一个名为 kafka 的用户:

useradd kafka -m

使用 passwd 设置其密码:

passwd kafka

将其添加到 sudo 组,以便具有安装 Kafka 依赖项所需的特权。可以使用 adduser 命令完成此操作:

adduser kafka sudo

现在您的 Kafka 用户已准备就绪。使用 su 登录:

su - kafka

步骤 2 —— 安装 Java

在安装其他软件包之前,更新可用软件包的列表,以便安装存储库中提供的最新版本:

sudo apt-get update

由于 Apache Kafka 需要 Java 运行时环境,使用 apt-get 安装 default-jre 软件包:

sudo apt-get install default-jre

步骤 3 —— 安装 ZooKeeper

Apache ZooKeeper 是一个开源服务,用于协调和同步属于分布式系统的节点的配置信息。Kafka 集群依赖于 ZooKeeper 执行诸如检测失败节点和选举领导者等操作。

由于 ZooKeeper 软件包在 Ubuntu 的默认存储库中可用,因此可以使用 apt-get 安装它。

sudo apt-get install zookeeperd

安装完成后,ZooKeeper 将自动作为守护进程启动。默认情况下,它将侦听端口 2181。

为确保它正在工作,通过 Telnet 连接到它:

telnet localhost 2181

在 Telnet 提示符下,输入 ruok 并按 ENTER。

如果一切正常,ZooKeeper 将回复 imok 并结束 Telnet 会话。

步骤 4 —— 下载并提取 Kafka 二进制文件

现在 Java 和 ZooKeeper 已安装,是时候下载并提取 Kafka 了。

首先,创建一个名为 Downloads 的目录,用于存储所有下载内容。

mkdir -p ~/Downloads

使用 wget 下载 Kafka 二进制文件。

wget "http://mirror.cc.columbia.edu/pub/software/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz" -O ~/Downloads/kafka.tgz

创建一个名为 kafka 的目录并切换到该目录。这将是 Kafka 安装的基本目录。

mkdir -p ~/kafka && cd ~/kafka

使用 tar 命令提取您下载的存档。

tar -xvzf ~/Downloads/kafka.tgz --strip 1

步骤 5 —— 配置 Kafka 服务器

下一步是配置 Kafka 服务器。

使用 vi 打开 server.properties:

vi ~/kafka/config/server.properties

默认情况下,Kafka 不允许您删除主题。为了能够删除主题,请在文件末尾添加以下行:

delete.topic.enable = true

保存文件并退出 vi。

步骤 6 —— 启动 Kafka 服务器

使用 nohup 运行 kafka-server-start.sh 脚本,以将 Kafka 服务器(也称为 Kafka broker)作为独立于您的 shell 会话的后台进程启动。

nohup ~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties > ~/kafka/kafka.log 2>&1 &

等待几秒钟让它启动。当您在 ~/kafka/kafka.log 中看到以下消息时,可以确定服务器已成功启动:

...
[2015-07-29 06:02:41,736] INFO New leader is 0 (kafka.server.ZookeeperLeaderElector$LeaderChangeListener)
[2015-07-29 06:02:41,776] INFO [Kafka Server 0], started (kafka.server.KafkaServer)

现在您有一个监听端口 9092 的 Kafka 服务器。

步骤 7 — 测试安装

现在让我们发布和消费一个**“Hello World”**消息,以确保 Kafka 服务器的行为是否正确。

要发布消息,您应该创建一个 Kafka 生产者。您可以使用kafka-console-producer.sh脚本轻松地从命令行创建一个。它需要 Kafka 服务器的主机名和端口,以及一个主题名称作为参数。

通过输入以下内容将字符串**“Hello, World”发布到名为TutorialTopic**的主题:

echo "Hello, World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TutorialTopic > /dev/null

由于该主题不存在,Kafka 将自动创建它。

要消费消息,您可以使用kafka-console-consumer.sh脚本创建一个 Kafka 消费者。它需要 ZooKeeper 服务器的主机名和端口,以及一个主题名称作为参数。

以下命令从我们发布的主题中消费消息。请注意使用--from-beginning标志,因为我们希望消费在消费者启动之前发布的消息。

~/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic TutorialTopic --from-beginning

如果没有配置问题,您现在应该在输出中看到Hello, World。

该脚本将继续运行,等待更多消息被发布到主题。随时打开一个新的终端并启动一个生产者来发布更多消息。您应该能够立即在消费者的输出中看到它们。

测试完成后,按下CTRL+C停止消费者脚本。

步骤 8 — 安装 KafkaT(可选)

KafkaT 是来自 Airbnb 的一个方便的小工具,它使您可以更轻松地查看 Kafka 集群的详细信息,并且还可以从命令行执行一些管理任务。由于它是一个 Ruby gem,您需要安装 Ruby 才能使用它。您还需要安装build-essential软件包以便能够构建它所依赖的其他 gem。使用apt-get安装它们:

sudo apt-get install ruby ruby-dev build-essential

现在可以使用gem命令安装 KafkaT:

sudo gem install kafkat --source https://rubygems.org --no-ri --no-rdoc

使用vi创建一个名为.kafkatcfg的新文件。

vi ~/.kafkatcfg

这是 KafkaT 使用的配置文件,用于确定您的 Kafka 服务器的安装和日志目录。它还应该将 KafkaT 指向您的 ZooKeeper 实例。因此,请向其中添加以下行:

{
  "kafka_path": "~/kafka",
  "log_path": "/tmp/kafka-logs",
  "zk_path": "localhost:2181"
}

现在您可以使用 KafkaT 了。首先,以下是如何使用它查看所有 Kafka 分区的详细信息:

kafkat partitions

您应该会看到以下输出:

Topic       Partition Leader    Replicas    ISRs  
TutorialTopic 0         0         [0]     [0]

要了解更多关于 KafkaT 的信息,请参阅其 GitHub 仓库。

步骤 9 — 设置多节点集群(可选)

如果您想要使用更多的 Ubuntu 14.04 机器创建一个多代理集群,您应该在每台新机器上重复执行步骤 1、步骤 3、步骤 4 和步骤 5。此外,您还应该在每台机器的server.properties文件中进行以下更改:

  • broker.id属性的值应更改为在整个集群中是唯一的
  • zookeeper.connect属性的值应更改为所有节点指向同一个 ZooKeeper 实例

如果您想要为您的集群拥有多个 ZooKeeper 实例,每个节点上zookeeper.connect属性的值应该是一个相同的、逗号分隔的字符串,列出所有 ZooKeeper 实例的 IP 地址和端口号。

步骤 10 — 限制 Kafka 用户

现在所有安装都已完成,您可以删除kafka用户的管理员特权。在这样做之前,请注销并以任何其他非根 sudo 用户重新登录。如果您仍在运行开始本教程的同一个 shell 会话,只需输入exit。

要删除kafka用户的管理员特权,请将其从sudo组中删除。

sudo deluser kafka sudo

为了进一步提高 Kafka 服务器的安全性,使用passwd命令锁定kafka用户的密码。这样可以确保没有人可以直接登录。

sudo passwd kafka -l

此时,只有 root 用户或一个 sudo 用户可以通过输入以下命令作为kafka用户登录:

sudo su - kafka

将来,如果您想要解锁它,可以使用带有-u选项的passwd:

sudo passwd kafka -u

结论

您现在在您的Ubuntu服务器上拥有一个安全的Apache Kafka。您可以通过使用几乎所有编程语言都可用的Kafka客户端,轻松地在您的项目中利用它,创建Kafka生产者和消费者。要了解更多关于Kafka的信息,请阅读其文档。


目录
相关文章
|
Ubuntu Linux
任何Ubuntu用户都应安装的四大Linux应用程序
当然,这款程序不需要太多介绍。我们面对的是网上最庞大最完整的多媒体中心,由于丰富的插件,我们能够高度细化地定制其每一项功能。这是我们的Linux发行版不可或缺的必备软件。 我们可以通过运行以下命令来轻松安装Kodi:sudo apt install kodi。
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
11月前
|
Ubuntu 安全 iOS开发
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
1369 5
|
11月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
1058 18
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
545 18
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
768 15
|
存储 Ubuntu iOS开发
在Ubuntu 22.04系统上安装libimobiledevice的步骤
为了获取更多功能或者解决可能出现问题,请参考官方文档或者社区提供支持。
1073 14
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
1293 7
|
Ubuntu 关系型数据库 MySQL
Ubuntu 22.04.1上安装MySQL 8.0及设置root密码的注意事项
这些是在Ubuntu 22.04.1 系统上安装MySQL 8.0 及设置root密码过程中必须考虑的关键点。正确的遵循这些步骤可确保MySQL的安装过程既顺利又安全。
2159 20