尝试连接到Kafka集群并将数据从主题写入Snowflake。
我遇到的错误是:
java.util.concurrent.ExecutionException: org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches com.snowflake.kafka.connector.SnowflakeSinkConnector
available connectors are: PluginDesc{klass=class com.snowflake.kafka.connector.SnowflakeSinkConnector, name='com.snowflake.kafka.connector.SnowflakeSinkConnector', version='1.0.0', encodedVersion=1.0.0, type=sink, typeName='sink', location='file:path_to_kafka/kafka_2.12-2.3.0/libs/snowflakeinc-snowflake-kafka-connector/'}
我正在运行的命令(不包括标准的zookeeper / kafka启动命令):
/path_to_kafka/kafka_2.12-2.3.0/bin/connect-standalone.sh /path_to_kafka/kafka_2.12-2.3.0/config/connect-standalone.properties /path_to_kafka/kafka_2.12-2.3.0/config/snowflake_properties.properties
我到目前为止所做的事情:
已更新/path_to_kafka/kafka_2.12-2.3.0/config/connect-standalone.properties
中的plugin.path
使用
plugin.path=/usr/share/java,/path_to_kafka/kafka_2.12-2.3.0/libs,/path_to_kafka/kafka_2.12-2.3.0/libs/snowflakeinc-snowflake-kafka-connector
我已经在线研究了类似的案例,但是尽管其中许多是收到相同错误消息的用户,但所需的连接器并没有像我这样列出在可用的连接器列表中。
我最初尝试将雪花罐直接放置在libs文件夹中,然后再次放置为整个程序包结构,但均无效。
每次尝试后,我都停止了zookeeper / kafka并重新启动它们,但仍然遇到相同的错误。
我已经用添加到PATH的jar路径进行了测试,但是我收到了同样的失败结果。
我看过的地方
https://docs.confluent.io/3.1.1/connect/userguide.html#installing-connector-plugins
Kafka Connect can't find connector
Kafka Connect cant' find class of developed plugin
Kafka Connect failed to add MySqlConnector
https://github.com/DataReply/kafka-connect-mongodb/issues/23
https://github.com/confluentinc/kafka-connect-jdbc/issues/476
https://github.com/wepay/kafka-connect-bigquery/issues/109
How to copy or configure kafka connect plugin files?
我在哪里下载了我的连接器: https://mvnrepository.com/artifact/com.snowflake/snowflake-kafka-connector/1.0.0
我已经研究了几天,我感觉我已经尝试了所有这些建议。但是,他们都不适合我,我也不知道我在做什么错。
答案 0 :(得分:0)
将您下载的JAR文件[…]复制到/ libs文件夹。
要使其成为Kafka命令的Java运行时类路径,则jar必须直接位于您的/path_to_kafka/kafka_2.12-2.3.0/libs/
目录下。根据您的描述,它们似乎位于子目录(/path_to_kafka/kafka_2.12-2.3.0/libs/snowflakeinc-snowflake-kafka-connector/
)内。
答案 1 :(得分:0)
我能够在Debian的“ cp-kafka-connect”映像中解决此问题。
在手动安装连接器插件时,我尝试:
confluent-hub install
(一旦旋转了连接POD)。以上两个选项都需要重新启动POD。
要克服手动重新启动POD的操作,可以直接使用以下命令从映像中安装连接器插件。
confluent-hub install snowflakeinc/snowflake-kafka-connector:1.4.3
一旦安装了coonnector插件,就可以安装自定义连接器:
curl -X POST -H "Content-Type: application/json" --data @ODX.json http://localhost:8083/connectors
注意: 无需在CLASSPATH或CONNECT_PLUGIN_PATH中进行其他更改。