簡體   English   中英

如何使用 debezium mysql 連接器 kafka 進行初始快照加載?

[英]How to do an initial snapshot load with debezium mysql connector kafka?

我正在使用 Kafka 集群和 Debezium MySql 連接器來獲取從數據庫更新到 Elasticsearch 的消息。 有一段時間我在做一些測試,最終得到了一個混合 ES,所以我想對 Elasticsearch 進行全新的滿載。

所以我想停止 debezium 連接器以停止饋送 ES 並刪除所有索引,以便當我再次啟動連接器時它可以滿載。 據我所知,連接器僅適用於pause/resume操作,並且不執行初始加載。

此時,我將手動刪除連接器和創建的主題並重新創建它們,以便它可以按初始狀態加載,但是關於如何在正確的步驟中執行此清理過程的任何想法?

我不知道是否有更好的方法,但這個解決方案對我有用:

  1. 停止/etc/kafka/connect-distributed.properties守護程序的服務。
sudo systemctl stop confluent-connect-distributed.service
  1. 刪除 Debezium 的連接器
curl -X DELETE http://localhost:8083/connectors/<connector name>
  1. 刪除與我的工作相關的所有主題,在這種情況下,這個 kafka 集群是一個開發者,所以我刪除了所有主題,甚至是默認主題。
__consumer_offsets
_confluent-command
_schemas
connect-configs
connect-offsets
connect-status
kafka-topics --bootstrap-server <kafka bootstrap> --delete --topic <topic name>
  1. 再次創建默認主題
kafka-topics --create --bootstrap-server <boostrap kafka> --topic connect-configs --replication-factor 3 --partitions 1 --config cleanup.policy=compact
kafka-topics --create --bootstrap-server <boostrap kafka> --topic connect-offsets --replication-factor 3 --partitions 50 --config cleanup.policy=compact
kafka-topics --create --bootstrap-server <boostrap kafka> --topic connect-status --replication-factor 3 --partitions 10 --config cleanup.policy=compact
  1. 再次啟動服務
sudo systemctl start confluent-connect-distributed.service
  1. 再次創建連接器
curl -s -i -X PUT -H  "Content-Type:application/json" \
    http://localhost:8083/connectors/<connector name>/config \
    -d '<json>'

這樣,您最終將在 elasticsearch 中獲得初始快照。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM