Apache Kafka Connect - 2019完整指南
今天,我们将讨论Apache Kafka Connect。此Kafka Connect文章包含有关Kafka Connector类型的信息,Kafka Connect的功能和限制。此外,我们将了解Kafka Connect及其配置的必要性。与此同时,我们将讨论不同的模式和Rest API。
在本Kafka Connect教程中,我们将研究如何将数据从外部系统导入Apache Kafka主题,以及如何将数据从Kafka主题导出到外部系统,我们还有另一个Apache Kafka项目组件,即Kafka Connect。但是,有关Kafka Connect的更多信息。
那么,让我们开始Kafka Connect。
Apache Kafka Connect - 完整指南
1.什么是Kafka Connect?
我们使用Apache Kafka Connect在Apache Kafka和其他系统之间流式传输数据,既可靠又可靠。此外,connect使得快速定义Kafka连接器变得非常简单,这些连接器可以将大量数据移入和移出Kafka。
Kafka Connect收集指标或将整个数据库从应用程序服务器收集到Kafka主题中。它可以为流处理提供低延迟的可用数据。
工作 - Apache Kafka Connect
2. Kafka Connect功能
Kafka Connect有以下功能:
Kafka Connect - 功能
一个。Kafka连接器的通用框架
它标准化了其他数据系统与Kafka的集成。此外,还简化了连接器的开发,部署和管理。
湾 分布式和独立模式
扩展到支持整个组织的大型集中管理服务,或者扩展到开发,测试和小型生产部署。
C。REST界面
通过易于使用的REST API,我们可以提交和管理Kafka Connect集群的连接器。
d。自动偏移管理
但是,即使只有连接器的一些信息,Kafka Connect也可以自动管理偏移提交过程。因此,连接器开发人员无需担心连接器开发中容易出错的部分。
即 默认情况下分布式和可伸缩性
它基于现有的组管理协议。为了扩展Kafka Connect集群,我们可以添加更多工作人员。
F。流媒体/批处理集成
我们可以说,为了桥接流媒体和批处理数据系统,Kafka Connect是一个理想的解决方案。
Apache Kafka工作流程| Kafka Pub-Sub Messaging
3.为什么选择Kafka Connect?
正如我们所知,像Flume一样,有许多工具能够写入Kafka或从Kafka读取,或者也可以导入和导出数据。所以,问题出现了,为什么我们需要Kafka Connect。因此,我们列出了主要优势:
为什么Kafka Connect-需要Kafka
一个。失败后自动恢复
对于每个记录,“源”连接器可以附加它传递给Kafka Connect的任意“源位置”信息。因此,在发生故障时,Kafka Connect会自动将此信息提供给连接器。通过这种方式,它可以在失败的地方恢复。此外,“接收器”连接器的自动恢复更加容易。
湾 自动故障转移
可以进行自动故障转移,因为Kafka Connect节点构建了一个Kafka群集。这意味着如果假设一个节点发生故障,它正在进行的工作将重新分配给其他节点。
C。简单并行
连接器可以定义数据导入或导出任务,尤其是并行执行的任务。
4. Kafka Connect Concepts
- 在子线程中执行连接器及其相关任务的操作系统进程(基于Java)就是我们所说的Kafka Connect 工作者。
- 此外,有一个对象定义了一个或多个任务的参数,这些任务实际上应该执行导入或导出数据的工作,我们称之为连接器。
- 要从某些任意输入读取并写入Kafka,源 连接器将生成任务。
- 为了从Kafka读取并写入一些任意输出,接收器连接器生成任务。
但是,我们可以说Kafka Connect不是重要数据转换的选择。尽管如此,为了定义基本数据转换,最新版本的Kafka Connect允许连接器的配置参数。然而,对于“源”连接器,此函数认为任务将其输入转换为AVRO或JSON格式; 在将记录写入Kafka主题之前应用转换。而且,虽然它涉及“接收器”连接器,但此函数认为输入Kafka主题上的数据已经是AVRO或JSON格式。
5. Kafka Connect的依赖性
Kafka Connect节点需要连接到Kafka消息代理群集,无论是以独立模式还是分布式模式运行。
基本上,对于分布式模式,没有其他依赖项。即使连接器配置设置存储在Kafka消息主题中,Kafka Connect节点也完全无状态。由于这个,Kafka Connect节点,它变得非常适合通过技术运行。
虽然要存储“当前位置”和连接器配置,但我们需要少量的本地磁盘存储,用于独立模式。
你必须阅读有关Kafka排队的信息
6.分布式模式
通过使用Kafka Broker地址,我们可以启动Kafka Connect工作器实例(即java进程),“内部使用”的几个Kafka主题的名称和“组ID”参数。通过“内部使用”Kafka主题,每个工作者实例与属于同一组ID的其他工作者实例进行协调。这里,一切都是通过Kafka消息代理完成的,不需要其他外部协调机制(没有Zookeeper等)。
工作人员之间(通过主题)就如何在可用的工作人员组中分发连接器和任务集进行协商。如果工作进程死亡,则会重新平衡群集,以便在剩余的工作人员上公平地分配工作。如果新员工开始工作,则重新平衡可确保其接管现有员工的一些工作。
7.独立模式
我们可以说,它只是分布式模式,其中工作者实例在Kafka消息代理中不使用内部主题。此进程运行所有指定的连接器及其生成的任务本身(作为线程)。
由于独立模式将当前源偏移存储在本地文件中,因此它不会使用Kafka Connect“内部主题”进行存储。作为命令行选项,以独立模式提供有关要执行的连接器的信息。
此外,在此模式下,运行连接器可以对生产系统有效; 通过这种方式,我们传统上执行大多数ETL样式的工作负载。
因此,我们再次以传统方式管理故障转移 - 例如,通过脚本启动备用实例。
一个。启动工人
工作者实例只是一个Java进程。通常,它是通过提供的shell脚本启动的。然后,从其CLASSPATH中,worker实例将加载连接器配置指定的任何自定义连接器。对于独立模式,配置在命令行上提供,对于从Kafka主题读取的分布式模式。
对于启动Kafka Connect工作程序,还有一个标准的Docker容器映像。因此,可以启动此映像的任意数量的实例,并且只要它们配置了相同的Kafka消息代理群集和group-id,它们也将自动联合在一起。
8. REST API
基本上,每个工作器实例都启动一个嵌入式Web服务器。因此,通过它,它为状态查询和配置公开了一个REST API。此外,对于处于分布式模式的工作人员,通过此REST API上载的配置将保存在内部Kafka消息代理主题中。但是,对于独立模式的工作程序,配置REST API不相关。
通过包装工作者REST API,Confluent控制中心提供了大量的Kafka-connect-management UI。
要定期获取系统状态,Nagios或REST调用可能会执行Kafka Connect守护程序的监视。
我们来讨论Apache Kafka + Spark Streaming Integration
9.卡夫卡连接器类型
通过实现特定的Java接口,可以创建连接器。我们有一套现有的连接器,或者我们可以为我们编写自定义连接器的设施。
它的工作者只是希望它执行的任何连接器和任务类的实现都存在于其类路径中。但是,如果没有子类加载器的好处,此代码将直接加载到应用程序,OSGi框架或类似代码中。
“Confluent开源版”下载包中有几个连接器,它们是:
- JDBC
- HDFS
- S3
- Elasticsearch
但是,没有办法单独下载这些连接器,但我们可以从Confluent Open Source中提取它们,因为它们是开源的,我们也可以下载并将其复制到标准的Kafka安装中。
10.配置Kafka Connect
通常,使用指向包含工作程序实例选项的config-file的命令行选项,每个工作程序实例都会启动。例如,Kafka消息代理详细信息,group-id。
但是,还会在独立模式下为工作者提供指向定义要执行的连接器的配置文件的命令行选项。然而,每个工作人员都以分布式模式从Kafka主题(在工作器配置文件中指定)中检索连接器/任务配置。
此外,工作进程在独立模式下为状态检查等提供REST API。
此外,要暂停和恢复连接器,我们可以使用REST API。
请务必注意,配置选项“key.converter”和“value.converter”选项不是特定于连接器的,它们是特定于工作者的。
11.从Kafka Connect Workers到Kafka Brokers的联系
出于管理目的,每个工作程序以分布式模式建立与Kafka消息代理群集的连接。但是,在worker配置文件中,我们将这些设置定义为“顶级”设置。
此外,为每个连接器建立了与Kafka消息代理群集的单独连接(套接字集)。许多设置都是从“顶级”Kafka设置继承的,但是可以使用配置前缀“consumer。”(由sink使用)或“producer。”(由源使用)覆盖它们以便使用不同的Kafka消息代理承载生产数据的连接与携带管理消息的连接的网络设置。
12.标准JDBC源连接器
连接器中心站点列出了JDBC源连接器,此连接器是Confluent Open Source下载的一部分。此外,请确保我们无法单独下载,因此对于已安装Apache的“纯”Kafka软件包而非Confluent软件包的用户,必须从Confluent软件包中提取此连接器并将其复制。
它有各种配置选项:
- 要扫描的数据库,指定为JDBC URL。
- 轮询间隔。
- 一个正则表达式,指定要监视的表; 对于每个表,都有一个单独的Kafka主题。
- 具有“递增id” 的SQL列,在这种情况下,连接器可以检测新记录(选择id> last-known-id)。
- 具有更新时间戳的SQL列,在这种情况下,连接器可以检测新的/已修改的记录(选择时间戳> last-known-timestamp的位置)。
奇怪的是,尽管连接器显然具有复制多个表的能力,但是“递增id”和“时间戳”列名是全局的 - 即,当复制多个表时,它们必须遵循相同的命名约定。列。
13. Kafka Connect Security
基本上,使用Kerberos安全的Kafka消息代理,Kafka Connect(v0.10.1.0)工作得非常好。通过与这些代理的SSL加密连接也可以正常工作。
但是,通过Kerberos或SSL,无法保护Kafka Connect节点公开的REST API; 但是,有一个功能请求。因此,在配置安全集群时,必须配置外部代理(例如Apache HTTP)以充当REST服务的安全网关。
看看Apache Kafka Security | Kafka的需求和组成部分
14. Kafka Connect的限制
除此之外,Kafka Connect也有一些限制:
- 目前,连接器的选择非常少。
- 商业和开源功能的分离非常差。
- 此外,它缺乏配置工具。
- 要部署自定义连接器(插件),有一种糟糕/原始的方法。
- 它非常以Java / Scala为中心。
因此,目前,它感觉更像是一个“工具包”,而不是当前的打包解决方案 - 至少在没有购买商业工具的情况下。
所以,这就是Apache Kafka Connect。希望你喜欢我们的解释。
15.总结
因此,我们已经看到了Kafka Connect 的整个概念。此外,我们已经了解了Kafka connect的好处。但是,如果有任何疑问,请随时在评论部分询问。
Apache Kafka Connect - 2019完整指南的更多相关文章
- Apache Kafka 集群部署指南
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Kafka基础 消息系统的作用 应该大部分小伙伴都清楚,用机油装箱举个例子. 所以消息系统就是如上图我们所说的仓库,能在中间 ...
- 使用kafka connect,将数据批量写到hdfs完整过程
版权声明:本文为博主原创文章,未经博主允许不得转载 本文是基于hadoop 2.7.1,以及kafka 0.11.0.0.kafka-connect是以单节点模式运行,即standalone. 首先, ...
- Windows OS上安装运行Apache Kafka教程
Windows OS上安装运行Apache Kafka教程 下面是分步指南,教你如何在Windows OS上安装运行Apache Zookeeper和Apache Kafka. 简介 本文讲述了如何在 ...
- 替代Flume——Kafka Connect简介
我们知道过去对于Kafka的定义是分布式,分区化的,带备份机制的日志提交服务.也就是一个分布式的消息队列,这也是他最常见的用法.但是Kafka不止于此,打开最新的官网. 我们看到Kafka最新的定义是 ...
- 使用Kafka Connect创建测试数据生成器
在最近的一些项目中,我使用Apache Kafka开发了一些数据管道.在性能测试方面,数据生成总是会在整个活动中引入一些样板代码,例如创建客户端实例,编写控制流以发送数据,根据业务逻辑随机化有效负载等 ...
- Apache Kafka® is a distributed streaming platform
Kafka Connect简介 我们知道过去对于Kafka的定义是分布式,分区化的,带备份机制的日志提交服务.也就是一个分布式的消息队列,这也是他最常见的用法.但是Kafka不止于此,打开最新的官网. ...
- Streaming data from Oracle using Oracle GoldenGate and Kafka Connect
This is a guest blog from Robin Moffatt. Robin Moffatt is Head of R&D (Europe) at Rittman Mead, ...
- kafka connect 使用说明
KAFKA CONNECT 使用说明 一.概述 kafka connect 是一个可扩展的.可靠的在kafka和其他系统之间流传输的数据工具.简而言之就是他可以通过Connector(连接器)简单.快 ...
- kafka connect rest api
1. 获取 Connect Worker 信息curl -s http://127.0.0.1:8083/ | jq lenmom@M1701:~/workspace/software/kafka_2 ...
随机推荐
- Windows10 Faster R-CNN(GPU版) 配置训练自己的模型
参考链接 1. 找到合适自己的版本,下载安装Anaconda 点击跳转下载安装 Anaconda,双击下载好的 .exe 文件安装,只勾选第一个把 conda 添加到 PATH 路径.
- H5如何实现关闭当前页面,跳转到新页面?
小程序有此功能的跳转方法. 那么H5如何实现该功能? 很简单. location.replace('new.html') 这个方法可以实现 关闭当前页面,跳转到新页面 的效果. 而 windo ...
- sublime text 3 安装、添加命令行启动、汉化、注册码
1. 安装sublime: 下载:http://www.sublimetext.com/3 添加命令行启动:设置环境变量->计算机->右键属性->高级系统设置->环境变量-&g ...
- MATLAB 可以画的各种类型的图总结
MATLAB® 提供了各种可用来绘制数据图的函数.下表对常见的图形函数进行了分类和说明. 线图 数据分布图 离散数据图 极坐标图 等高线图 向量场 plot area stairs polarplot ...
- CTF 文件包含
目录 一.基本概念 二.本地文件包含 三.远程文件包含 四.具体场景 五.补充 一.基本概念 文件包含 将相同函数写入单独的文件中,需要使用时直接调用 文件包含漏洞 将被包含的文件设置为变量,导致客户 ...
- [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available
原文链接https://blog.csdn.net/xiaomajia029/article/details/88320233 问题描述: 原因分析:在项目配置的时候,默认 npm 包导出的是运行时构 ...
- assert(0)的作用
捕捉逻辑错误.可以在程序逻辑必须为真的条件上设置断言.除非发生逻辑错误,否则断言对程序无任何影响.即预防性的错误检查,在认为不可能的执行到的情况下加一句ASSERT(0),如果运行到此,代码逻辑或条件 ...
- Spark(五十三):Spark RPC初尝试使用
基本用法主要掌握一点就行: master slave模式运用:driver 就是master,executor就是slave. 如果executor要想和driver交互必须拿到driver的Endp ...
- MongoDB笔记: 常见问题
系统配置 设置ulimit MongoDB的文件机制 每个Collection会单独创建一个数据文件(collection-xxxxxx.wt) 每个索引会单独创建一个文件(index-xxxxxx. ...
- EOS测试链智能合约部署调用
ETH与EOS两者智能合约进行简单的对比. 1.编译智能合约(合约编译成.wasm与.abi格式后即可部署到区块链) [root@C03-12U-26 testcontract]# cat testc ...