重新启动kafka connect接收器和源连接器以从头开始读取

时间:2019-03-27 12:40:49

标签: apache-kafka apache-kafka-connect

我对此进行了很多搜索,但似乎没有关于此的很好指南。

根据我的搜索,有几件事情需要考虑:

  • 重置Sink Connector内部主题(状态,配置和偏移)。
  • 源连接器偏移量实现是特定于实现的。

问题:甚至还需要重置这些主题吗?

  • 删除消费者组。
  • 使用不同的名称重新启动连接器(这也是一种选择),但这似乎不是正确的选择。
  • 将消费者组从--reset-offsets重置为--to-earliest
  • 使用REST API(它提供重置和从头读取功能)

重新启动接收器和源连接器以从头读取的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

源连接器:

  • 独立模式:删除偏移文件(/tmp/connect.offsets)或更改连接器名称。
  • 分布式模式:更改连接器的名称。

接收器连接器(两种模式)以下方法之一:

  • 更改名称。
  • 重置使用者组的偏移量。该组的名称与连接器名称相同。

要重置偏移量,您必须先删除连接器,重置偏移量(./bin/kafka-consumer-groups.sh --bootstrap-server :9092 --group connectorName --reset-offsets --to-earliest --execute --topic topicName),再添加一次相同的配置

您可以检查以下问题:Reset the JDBC Kafka Connector to start pulling rows from the beginning of time?

答案 1 :(得分:0)

源连接器分布式模式-还有另一个选项,可向偏移主题生成新消息。 例如,我使用jdbc源连接器: 当查看偏移主题时,我看到以下内容:

./kafka-console-consumer.sh --zookeeper localhost:2181/kafka11-staging --topic kc-staging--offsets --from-beginning --property print.key=true

["referrer-family-jdbc-source",{"query":"query"}]   {"incrementing":100}

现在为了重置此设置,我只生成了一条以0递增的消息

例如:how to produce from shell with key from here

./kafka-console-producer.sh \
  --broker-list `hostname`:9092 \
  --topic kc-staging--offsets \
  --property "parse.key=true" \
  --property "key.separator=|"
["referrer-family-jdbc-source",{"query":"query"}]|{"incrementing":0}

请注意,您需要执行以下操作:

  • 删除连接器。
  • 如上所述,产生具有相关偏移量的消息。
  • 再次创建连接器。

答案 2 :(得分:0)

有点晚,但找到了另一种方式。只需将独立模式下的 offset.storage.file.name 设置为 dev/null:

#worker.properties    
offset.storage.file.filename=/dev/null

#cmdline
connect-standalone /data/config/worker.properties /data/config/connector.properties