Big Data

kafka connect 介绍

2020-09-16  本文已影响0人  盗梦者_56f2

概述

Kafka Connect 是一款可扩展并且可靠地在 Apache Kafka 和其他系统之间进行数据传输的工具。 可以很简单的快速定义 connectors 将大量数据从 Kafka 移入和移出. Kafka Connect 可以摄取数据库数据或者收集应用程序的 metrics 存储到 Kafka topics,使得数据可以用于低延迟的流处理。 一个导出的 job 可以将来自 Kafka topic 的数据传输到二级存储,用于系统查询或者批量进行离线分析。

Kafka Connect 功能包括:

搭建kafka connect分布式集群

Kafka Connect 当前支持两种执行方式: 单机 (单个进程) 和 分布式.
分布式模式下会自动进行负载均衡,允许动态的扩缩容,并提供对 active task,以及这个任务对应的配置和offset提交记录的容错。

#分布式
bin/connect-distributed.sh config/connect-distributed.properties

connect-distributed.properties文件配置参数可以查看官方文档

配置connector

Connector 配置是简单的key-value 映射的格式。在分布式模式中,它们将被包含在创建(或修改)connector 的请求的JSON格式串中。

rest api

由于Kafka Connect 旨在作为服务运行,它还提供了一个用于管理 connectors 的REST API。默认情况下,此服务在端口8083上运行。以下是当前支持的功能:

Kafka Connect还提供用于获取有关 connector plugin sss信息的REST API:

自定义connector

要在Kafka和另一个系统之间复制数据,用户会为想要 pull 数据或者 push 数据的系统创建一个connector。 connector 有两类:SourceConnectors 从其他系统导入数据(e.g.JDBCSourceConnector 会将关系型数据库导入到Kafka中)和SinkConnectors导出数据(e.g. HDFSSinkConnector会将Kafka topic 的内容导出到 HDFS 文件)

Connectors 自身不执行任何数据复制:Connector的配置描述要复制的数据,并且Connector 负责负责将 job 分解为可分发给 worker 的一组 Tasks。这些Tasks也分为两类: SourceTask 和 SinkTask。

通过分配,每个Task 必须将数据的一部分子集复制到Kafka或者从Kafka复制。在 Kafka Connect中,应该始终可以将这些分配的数据框架化为一组输入和输出流,这些流由具有一致结构的记录组成。

开发一个 connector 只需要实现两个接口, Connector 和 Task接口. 一个简单的例子的源码在Kafkafile package中。 connector 用于单机模式,并拥有 SourceConnector 和SourceTask实现来读取一个文件的每行记录,并将其作为记录发发送,SinkConnector的SinkTask将记录写入到文件。

上一篇 下一篇

猜你喜欢

热点阅读