简体   繁体   English

如何将 HDFS 连接器添加到 Kafka Connect API?

[英]How add HDFS connector to Kafka Connect API?

I'm new using Kafka Connect features and I'm getting difficulties on how configure Kafka and HDFS with Kafka Connect.我是 Kafka Connect 功能的新手,我在如何使用 Kafka Connect 配置 Kafka 和 HDFS 方面遇到了困难。

I've been following the tutorial from Debezium website, where I could test new events and see how the system works.我一直在关注 Debezium 网站上的教程,在那里我可以测试新事件并查看系统如何工作。 Once in the tutorial they explained how we can create a connector between MySql and Kafka, I tried do the same but for the HDFS.在教程中,他们解释了我们如何在 MySql 和 Kafka 之间创建连接器,我尝试做同样的事情,但对于 HDFS。

I've done my research online and launch the following command:我已经在网上完成了我的研究并启动了以下命令:

*curl -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ -d '{"name":"hdfs-sink","config":{"connector.class":"io.confluent.connect.hdfs.HdfsSinkConnector",
"tasks.max":1,
"topics":"dbserver1,dbserver1.inventory.products,dbserver1.inventory.products_on_hand,dbserver1.inventory.customers,dbserver1.inventory.orders",
"hdfs.url":"hdfs://172.18.0.2:9870",
"flush.size":3,
"logs.dir":"logs",
"topics.dir":"kafka",
"format.class":"io.confluent.connect.hdfs.parquet.ParquetFormat",
"partitioner.class":"io.confluent.connect.hdfs.partitioner.DefaultPartitioner",
"partition.field.name":"day"}}'*

In this command I've added the topic that where generated automatically by Kafka, the URL I tried to use the IP address from the container namenode (which I not sure if this is correct).在此命令中,我添加了由 Kafka 自动生成的主题,即我尝试使用容器名称节点中的 IP 地址的 URL(我不确定这是否正确)。 Over all I'm testing, but the final goal here is get every event into HDFS.总的来说,我正在测试,但这里的最终目标是将每个事件都放入 HDFS。

{"error_code":500,"message":"Failed to find any class that implements Connector and which name matches io.confluent.connect.hdfs.HdfsSinkConnector, available connectors are: PluginDesc{klass=class io.confluent.connect.activemq.ActiveMQSourceConnector, name='io.confluent.connect.activemq.ActiveMQSourceConnector', version='5.3.1', encodedVersion=5.3.1, type=source, typeName='source', location='file:/usr/share/java/kafka-connect-activemq/'}, PluginDesc{klass=class io.confluent.connect.elasticsearch.ElasticsearchSinkConnector, name='io.confluent.connect.elasticsearch.ElasticsearchSinkConnector', version='5.3.1', encodedVersion=5.3.1, type=sink, typeName='sink', location='file:/usr/share/java/kafka-connect-elasticsearch/'}, PluginDesc{klass=class io.confluent.connect.gcs.GcsSinkConnector, name='io.confluent.connect.gcs.GcsSinkConnector', version='5.0.3', encodedVersion=5.0.3, type=sink, typeName='sink', location='file:/usr/share/confluent-hub-components/confluentinc-kafka-connect-gcs/'}, PluginDesc{klass=class io.confluent.connect.ibm.mq.IbmMQSourceConnector, name='io.confluent.connect.ibm.mq.IbmMQSourceConnector', version='5.3.1', encodedVersion=5.3.1, type=source, typeName='source', location='file:/usr/share/java/kafka-connect-ibmmq/'}, PluginDesc{klass=class io.confluent.connect.jdbc.JdbcSinkConnector, name='io.confluent.connect.jdbc.JdbcSinkConnector', version='5.3.1', encodedVersion=5.3.1, type=sink, typeName='sink', location='file:/usr/share/java/kafka-connect-jdbc/'}, PluginDesc{klass=class io.confluent.connect.jdbc.JdbcSourceConnector, name='io.confluent.connect.jdbc.JdbcSourceConnector', version='5.3.1', encodedVersion=5.3.1, type=source, typeName='source', location='file:/usr/share/java/kafka-connect-jdbc/'}, PluginDesc{klass=class io.confluent.connect.jms.JmsSourceConnector, name='io.confluent.connect.jms.JmsSourceConnector', version='5.3.1', encodedVersion=5.3.1, type=source, typeName='source', location='file:/usr/share/java/kafka-connect-activemq/'}, PluginDesc{klass=class io.confluent.connect.s3.S3SinkConnector, name='io.confluent.connect.s3.S3SinkConnector', version='5.3.1', encodedVersion=5.3.1, type=sink, typeName='sink', location='file:/usr/share/java/kafka-connect-s3/'}, PluginDesc{klass=class io.confluent.connect.storage.tools.SchemaSourceConnector, name='io.confluent.connect.storage.tools.SchemaSourceConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=source, typeName='source', location='file:/usr/share/java/kafka-connect-s3/'}, PluginDesc{klass=class io.confluent.kafka.connect.datagen.DatagenConnector, name='io.confluent.kafka.connect.datagen.DatagenConnector', version='null', encodedVersion=null, type=source, typeName='source', location='file:/usr/share/confluent-hub-components/confluentinc-kafka-connect-datagen/'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector, name='org.apache.kafka.connect.file.FileStreamSinkConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=sink, typeName='sink', location='file:/usr/share/java/kafka/'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name='org.apache.kafka.connect.file.FileStreamSourceConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=source, typeName='source', location='file:/usr/share/java/kafka/'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, name='org.apache.kafka.connect.tools.MockConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=connector, typeName='connector', location='file:/usr/share/java/kafka/'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connect.tools.MockSinkConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=sink, typeName='sink', location='file:/usr/share/java/kafka/'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, name='org.apache.kafka.connect.tools.MockSourceConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=source, typeName='source', location='file:/usr/share/java/kafka/'}, PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=source, typeName='source', location='file:/usr/share/java/kafka/'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=source, typeName='source', location='file:/usr/share/java/kafka/'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', version='5.3.1-ccs', encodedVersion=5.3.1-ccs, type=source, typeName='source', location='file:/usr/share/java/kafka/'}"}

This is the given error by the terminal, I believe the plugin for HDFS is not installed properly(I've followed many examples online, but still not sure if is correctly installed).这是终端给出的错误,我相信 HDFS 插件没有正确安装(我已经在网上关注了很多例子,但仍然不确定是否正确安装)。

I'm not sure if is really necessary have this plugin from Confluent?我不确定是否真的有必要使用 Confluent 的这个插件?

I don't know if HDFS installed from docker it's also a good idea?我不知道从 docker 安装 HDFS 是否也是一个好主意?

Hope you share some of your knowledge on this issue, thanks in advance.希望你能分享一些关于这个问题的知识,在此先感谢。

Tutorial link: https://debezium.io/documentation/reference/1.0/tutorial.html教程链接: https : //debezium.io/documentation/reference/1.0/tutorial.html

Welcome to StackOverflow!欢迎使用 StackOverflow!

There is an issue with plugin installation.插件安装有问题。 So first of all, please check it using the Kafka Connect REST Interface (see details here ).所以首先,请使用 Kafka Connect REST 接口检查它(请参阅此处的详细信息)。 And then you can install connector manually .然后您可以手动安装连接器。

The HDFS2 Sink Connector is deprecated and removed from the Confluent Platform installation. HDFS2 接收器连接器已弃用并从 Confluent Platform 安装中删除。

You can still find it and install it from Confluent Hub, and I would recommend using the official Apache Kafka site to learn about the core of Kafka Connect rahter than elsewhere您仍然可以从 Confluent Hub 找到它并安装它,我建议使用官方 Apache Kafka 站点来了解 Kafka Connect 的核心,而不是其他地方

Check out this link on Confluent's staging docs for HDFS 2 Sink Connector: https://docs.confluent.io/current/connect/kafka-connect-hdfs/index.html在 Confluent 的 HDFS 2 Sink 连接器暂存文档上查看此链接: https : //docs.confluent.io/current/connect/kafka-connect-hdfs/index.html

It covers almost everything and will also help you how to work around if you are using Confluent Platform.它几乎涵盖了所有内容,如果您正在使用 Confluent Platform,它还将帮助您解决问题。

A docker image provides a reliable way to work with HDFS. docker 镜像提供了一种使用 HDFS 的可靠方法。 Use this image: https://hub.docker.com/r/sequenceiq/hadoop-docker/使用此图像: https : //hub.docker.com/r/sequenceiq/hadoop-docker/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Kafka Connect:如何使用hdfs sink连接器将Kafka主题的protobuf数据发送到HDFS? - Kafka Connect: How can I send protobuf data from Kafka topics to HDFS using hdfs sink connector? kafka连接HDFS接收器连接器失败 - kafka connect hdfs sink connector is failing Kafka连接HDFS Sink连接器错误 - Kafka connect with HDFS Sink connector error 合流Kafka Connect HDFS Sink连接器延迟 - Confluent Kafka Connect HDFS Sink connector latency kafka connect-具有hdfs接收器连接器的ExtractTopic转换引发NullPointerException - kafka connect - ExtractTopic transformation with hdfs sink connector throws NullPointerException 如何在 Kafka Connect JDBC Source 连接器中添加显式 WHERE 子句 - How to add explicit WHERE clause in Kafka Connect JDBC Source connector 如何最好地将连接器添加到 docker compose 中的 kafka connect? - How can I best add connector to kafka connect in docker compose? Kafka Connect - 如何删除连接器 - Kafka Connect - How to delete a connector Kafka:如何创建HDFS Kafka连接器的胖子? - Kafka: How can I create a fat Jar of the HDFS Kafka connector? Kafka Connect:如何将自定义连接器 (SMT) 添加到现有的 Kafka Connect docker 安装? - Kafka Connect: How to add a custom connector(SMT) to an existing Kafka Connect docker installation?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM