11.22 Apache Kafka和Apache NiFi集成

  • 介紹

Apache Kafka是一個高吞吐量的分佈式消息隊列系統,已成為主流的數據流通道。Apache NiFi的主要任務是將數據從各種數據源的數據提取到數據目的目標端,這裡將介紹如何將Apache NiFi與Apache Kafka集成,對數據進行提取、轉換和存儲的幾個具體案例以及細節。

  • NiFi作為Kafka的生產者
Apache Kafka和Apache NiFi集成

NiFi作為Kafka的數據生產者

隨著Apache NiFi的子項目Apache MiNiFi的出現,MiNiFi可以將數據從數據源直接發送到Apache NiFi中心實例,然後該實例將數據傳遞到指定的Kafka Topic。這樣做的主要好處是,只需在Apache NiFi中心實例上配置處理器,就可以在不編寫任何代碼的情況下將數據導入Kafka,並且可以直觀地監視和控制該管道。

  • NiFi作為Kafka的消費者
Apache Kafka和Apache NiFi集成

NiFi作為Kafka的消費者


在有些情況下可能已經有數據發送到Kafka的管道。在這種情況下,NiFi可以充當消費者的角色,並完成將數據從Kafka提取、處理併發送到數據目標端的所有邏輯。同樣,您可以在不需要編寫任何代碼的情況下將數據從Kafka傳遞到HDFS,並且可以利用NiFi的MergeContent處理器來接收來自Kafka的消息,並將它們打包為HDFS適當大小的文件。

  • 雙向數據流
Apache Kafka和Apache NiFi集成

雙向數據流


更復雜的情況可能涉及將NiFi,Kafka和流處理平臺的功能結合起來以創建動態的數據流。在這種情況下,MiNiFi和NiFi將數據發送Kafka,從而可將其提供給流處理平臺或其他分析平臺,並將結果寫回到NiFi所使用的不同Kafka主題,並將結果推回給MiNiFi處理收集。這種情況的另一個好處是,如果我們需要對結果進行其他處理,NiFi可以將數據傳輸到任何需要的地方,而無需部署新代碼。


分享到:


相關文章: