Kafka Mysql CDC到弹性搜索

时间:2020-02-19 07:47:44

标签: elasticsearch apache-kafka apache-kafka-connect

我试图将MySql的数据库更改通过source-connector外包给kafka主题,并且可行。现在,我想将这些数据发送到弹性搜索实例。

为此,我正在关注这个Kafka Connect Elasticsearch: Consuming and Indexing with Kafka Connect和这个Kafka Connect and Elasticsearch

对于从mysql到kafka的CDC,我可以看到我在mysql中所做的更改,并读取了它以创建源连接器,但是当我创建另一个连接器elasticsearch-sink连接器时,source-connectr 任务.state 显示为Failed!因此,尽管在es-config.properties文件中在设置中创建了索引,但数据库更改不会进入ES。

我已将jar放在kafka-dir中,源连接器的lib可以在该目录中工作(以避免有关类路径问题的进一步问题)。

在创建elaticsearch-sink-connector时出现此错误(尽管如此,我没有任何错误,并且所有库都在同一目录中!):

ERROR连接器的插件类加载器: “ io.confluent.connect.elasticsearch.ElasticsearchSinkConnector”为 未找到。返回: org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader@5cc126dc (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:165)

我正在以此运行我的连接器:

bin/connect-standalone.sh config/connect-standalone.properties config/elasticsearch-connect.properties

简而言之,我的连接器task.state一次仅保留RUNNING

编辑:
plugin.path用于connect-standablone.properties文件:

plugin.path=/media/***/projects/playground/kafka/kafka_2.12-2.4.0, /media/***/projects/playground/kafka/kafka-connect-elasticsearch/target/kafka-connect-elasticsearch-3.2.0-SNAPSHOT-package/share/java

它们都包含es-connector jar。上一个后来添加但仍然相同

我现在应该做什么?

1 个答案:

答案 0 :(得分:1)

当我只是将schema.enable更改为false时,事情就像魅力一样工作

key.converter.schemas.enable=false
value.converter.schemas.enable=false

/之后添加了额外的plugin.path,尽管没有/,它也可以用于源连接器!

编辑:我忘了提到我也用5.4.0版本替换了我的连接器版本,就像提到的cricket_007

编辑2: 后来,我进行了更多调查,发现额外的/问题以及下面提到的新关键属性帮助我摆脱了连接器的FAILED状态(一次只运行一个连接器):

internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false

在connect-standalone.properties文件中

谢谢