2017-04-05 82 views

回答

13

Apache Beam是流處理系統(如Apache Flink,Apache Spark(streaming),Apache Apex和Apache Storm)的抽象層。它允許您使用標準API編寫代碼,然後使用任何底層平臺執行代碼。因此,理論上講,如果您針對Beam API編寫代碼,則該代碼可以在Flink或Spark Streaming上運行,而無需更改任何代碼。

Apache NiFi是一個數據流工具,專注於將系統之間的數據移動,從使用MiNiFi的非常小型的邊緣設備一直轉移到帶有NiFi的大型數據中心。 NiFi的重點在於視覺指揮和控制,數據過濾,數據豐富,數據來源和安全等功能,僅舉幾例。使用NiFi,您不會編寫代碼並將其作爲工作進行部署,而是通過用戶界面構建生動的數據流,並在每個操作中發揮作用。

流處理平臺通常專注於涉及流和窗口操作聯合的計算。數據流工具經常是互補的,用於管理從數據源到處理平臺的數據流。

NiFi和流處理系統之間實際上有幾個集成點...... Flink,Spark,Storm和Apex都有一些組件可以從NiFi中獲取數據,或者將數據推回NiFi。另一種常見模式是使用MiNiFi + NiFi將數據導入Apache Kafka,然後讓Kafka使用流處理系統。