大数据项目笔记(5):项目二kafka运行实例 | 青训营笔记

218 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的的第八天

昨天配置了Kafka的环境,在成功配置之后,我们对其对其进行了一个较为简单的运行,因为时间原因,所以当时我们进行的操作没有进行太多展示,今天对其进行一个补充的展示

----20220810

上一篇文章在这边大数据项目笔记(4):虚拟机搭建项目二kafka环境 | 青训营笔记 - 掘金 (juejin.cn),在这片文章里,我们配置了环境,并操作了kafka,今天我们从使用 KAFKA CONNECT 将数据作为事件流导入/导出这一步开始

首先打开虚拟机,将操作进行到上一次我们的操作结尾,这一段我直接跳过了,不耽误时间
运行控制台创建器客户端,将一些事件写入主题 cff0710c3411e50dc72ab2a926e0d3a.png 这边打开另一个终端会话并运行控制台使用者客户端以读取刚创建的事件\

1660136134258.png 这边由于输完之后,没有回车再ctrl+c,所以最后一个没录入,读取时读不出来最后一个

使用 KAFKA CONNECT 将数据作为事件流导入/导出

这一段是我们今天要讲的重点

在现有系统(如关系数据库或传统邮件系统)中,可能拥有大量数据,以及许多已使用这些系统的应用程序。Kafka Connect允许我们将数据从外部系统连续引入Kafka,反之亦然。它是一个可扩展的工具,用于运行连接器,这些连接器实现用于与外部系统交互的自定义逻辑。因此,将现有系统与Kafka集成非常容易。为了使这个过程更加容易,有数百种这样的连接器随时可用。

这次我们将了解如何使用简单的连接器运行 Kafka Connect,这些连接器将数据从文件导入 Kafka 主题,并将数据从 Kafka 主题导出到文件。
确保添加到 Connect 辅助角色配置中的属性 我们将使用相对路径并将连接器的包视为 uber jar,当从安装目录运行快速入门命令时,该 jar 将起作用。但是,值得注意的是,对于生产部署,使用绝对路径始终是首选
connect-file-3.2.1.jar``plugin.path
这边通过

vi config/server.properties

来对于查看和编辑kafka的config目录

1660141423627.png 编辑文件,添加或更改与以下内容匹配的配置属性,然后保存该文件:config/connect-standalone.properties``plugin.path 然后,创建一些数据进行测试:

1660140938388.png 接下来,我们将启动两个在独立模式下运行的连接器,这意味着它们在单个本地专用进程中运行。我们提供三个配置文件作为参数。第一个始终是 Kafka Connect 进程的配置,其中包含通用配置,例如要连接到的 Kafka 代理和数据的序列化格式。其余的配置文件分别指定要创建的连接器。这些文件包括唯一的连接器名称、要实例化的连接器类以及连接器所需的任何其他配置。

> bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

Kafka 附带的这些示例配置文件使用您之前启动的默认本地群集配置并创建两个连接器:第一个是源连接器,它从输入文件中读取行并生成每个行到 Kafka 主题;第二个是接收器连接器,它从 Kafka 主题读取消息,并在输出文件中将每个消息生成为一行。

在启动期间,可以看到许多日志消息,包括一些指示正在实例化连接器的消息。一旦 Kafka Connect 过程启动,源连接器应开始从主题读取行并将其生成到主题,接收器连接器应开始从主题读取消息并将其写入文件。我们可以通过检查输出文件的内容来验证数据是否已通过整个管道传递:test.txt connect-test connect-test test.sink.txt`

Kafka Connector是什么

Kafka Connect 是一种用于在 Apache Kafka 和其他数据系统之间可扩展且可靠地流式传输数据的工具。它使快速定义将大型数据集移入和移出 Kafka 的连接器变得简单。Kafka Connect 可以摄取整个数据库或从应用程序服务器收集指标到 Kafka 主题中,使数据可用于低延迟的流处理。导出连接器可以将数据从 Kafka 主题传送到二级索引(如 Elasticsearch)或批处理系统(如 Hadoop)以进行离线分析。