目錄:
- 什么是Kafka Connect
- Kafka Connect能干什么
- Kafka Connect使用示例
什么是Kafka Connect
它是一種用於Kafka和其它系統之間(其它數據源)流式數據傳輸的工具,如Mysql >> Oracle,Json >> Mysql,MongoDB >> Elastic等。
常用於報表等,因為他們都需要從多個數據源中抽取需要的數據,然后再將這些數據處理,最后存到自己的數據源中。
——————————————————————————————————————————————————————
Kafka Connect功能:
- 規范接口:規范了其它數據系統與Kafka的集成,簡化了連接器的開發、部署和管理。
- 提供分布式和單機模式:上至分布式集中管理,下到開發、測試和小規模的生產部署。
- 提供RestAPI接口:提供RestAPI管理Connector。
- 自動的offset管理:解決了開發連接器人員最難搞的offset維護問題。
- 可擴展性:Kafka Connect基於現有的組管理協議,可添加更多的worker來擴展Kafka Connect集群。
Kafka Connect能干什么
1、提升獲取數據速度:當需要接受大數據,可以在幾毫秒之內就拿到這些數據並開始進行處理。
2、提供高可用的數據傳輸:數據管道傳輸數據到業務系統的過程中,其間不會出現單點故障。即便出現故障也可以自動從故障中恢復,保證數據的可靠性。
3、提供高吞吐量管道、有效應對數據峰值:數據管道可以支持非常高的吞量,而且數據管道可以應對突發的吞吐量增長。
4、規范接口:對開發者提供了統一的實現接口,開發、部署和管理都非常方便。
5、提供高擴展性:使用分布式模式進行水平擴展。
6、提供RestAPI管理Connectors:在分布式模式下可以通過Rest Api提交和管理Connectors。
注:目前Kafka Connect已經支持絕大部分的主流數據源,如JDBC、HDFS、HBase等。
Kafka Connect使用示例
使用Kafka Connect之前先來了解些基本的概念:
- Source:負責導入數據到Kafka。
- Sink:負責從Kafka導出數據。
- Connectors:通過管理任務來協調數據流的高級抽象。
- Tasks:數據寫入Kafka和從Kafka中讀出的具體實現。
- Workers:運行connectors和tasks的進程。
- Converters:Kafka connect和其他存儲系統直接發送或者接受數據之間轉換數據。
- Transforms:一種輕量級數據調整的工具。
——————————————————————————————————————————————————————
1、單機模式
./connect-standalone.sh ../config/connect-file.properties ../config/connect-file-source.properties ../config/connect-file-sink.properties
2、分布式
- 下載相應的第三方Connect后打包編譯。
- 將jar丟到Kafka的libs目錄下。
- 啟動connector。
- 使用Rest API提交connector配置。
./connect-distributed.sh ../config/connect-distributed.properties