在Ubuntu 14.04上安装Apache Kafka的方法

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 在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的信息,请阅读其文档。


目录
相关文章
|
16天前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
93 2
|
16天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
1289 3
|
10天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
40 4
Linux系统之Ubuntu安装cockpit管理工具
|
15天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
71 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
15天前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
20 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
16天前
|
Ubuntu 虚拟化
软件安装(二):VMware ubuntu20.04 安装步骤
这篇文章是关于如何在VMware Workstation 16 Player上安装Ubuntu 20.04桌面版的详细步骤指南。
105 2
软件安装(二):VMware ubuntu20.04 安装步骤
|
17天前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
26 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
19天前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
54 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
11天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
37 1
|
15天前
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
17 2