Apache Flink與Hadoop上的Mapreduce相比如何? 在哪些方面更好,爲什麼?Apache Flink與Hadoop上的Mapreduce相比如何?
回答
聲明:我是Apache Flink的提交者和PMC成員。
與Hadoop MapReduce類似,Apache Flink是一個具有自己的API和執行引擎的並行數據處理器。 Flink旨在支持許多Hadoop所使用的用例,並與來自Hadoop生態系統(包括HDFS和YARN)的許多系統搭配使用。
我會通過區分MapReduce編程模型和MapReduce執行模型來回答你的問題。
規劃模型
阿帕奇弗林克的編程模型是基於MapReduce編程模型的概念,但它概括在幾個方面。 Flink提供Map和Reduce功能,但也提供其他轉換,如Join,CoGroup,Filter和Iterations。這些轉換可以在任意數據流中組合,包括多個源,接收器以及分支和合並流。 Flink的數據模型比MapReduce的鍵值對模型更通用,並允許使用任何Java(或Scala)數據類型。可以靈活地在這些數據類型上定義密鑰。
因此,Flink的編程模型是MapReduce編程模型的超集。它允許以更方便簡潔的方式定義許多程序。我還想指出,可以在Flink程序中嵌入未修改的Hadoop函數(Input/OutputFormats,Mapper,Reducers),並與本地Flink函數一起執行它們。
執行模式
綜觀執行模型,弗林克借用並行關係數據庫系統的許多概念。 Flink具有流水線處理模型,可減少在本地或分佈式文件系統上實現中間結果的需求(此外,這還允許Flink進行實時流處理)。而且,Flink程序的執行與程序的規範沒有緊密聯繫。在MapReduce中(由Apache Hadoop完成),每個MapReduce程序的執行遵循完全相同的模式。 Flink程序被提供給優化器,該優化器計算出有效的執行計劃。與關係數據庫管理系統類似,優化器選擇數據發送和連接策略,避免了諸如數據混洗和排序等昂貴的操作。我應該指出,Flink尚未在Hadoop運行的大規模橫向測試中進行測試。我知道在多達200個節點上運行的Flink設置。
添加到Fabian的答案:
還有一個區別是,弗林克不是一個純粹的批處理系統,但是可以在同一時間低等待時間流分析,並提供一個很好的API定義流分析程序。
在內部,Flink實際上是一個流媒體系統。要閃爍,批處理程序是流式處理程序的特例。
- 1. Apache Storm與Hadoop相比
- 2. MapReduce Apache Hadoop技術
- 3. Apache Apex與Apache Flink
- 4. 與Hadoop MapReduce的成對比較
- 5. 與Apache相比,Node.js的性能如何?
- 6. 如何與Apache Flink會話流?
- 7. 如何將Hadoop MapReduce與HDFS分開?
- 8. Apache Flume與Apache Flink的區別
- 9. Spring MVC和Apache Hadoop啓動MapReduce作業
- 10. Apache Crunch是否帶有Hadoop MapReduce API?
- 11. 比較Hadoop MapReduce中的兩個文件
- 12. hadoop mapreduce
- 13. 你如何使用MapReduce/Hadoop?
- 14. Apache Flink的XmlInputFormat
- 15. Hadoop Mapreduce ClassNotFoundException
- 16. hadoop的Dumbo mapreduce
- 17. Hadoop中的MapReduce
- 18. Apache Flink + CEP - 檢測相同的事件
- 19. Hadoop/MapReduce的替代模型
- 20. 查找與Hadoop/MapReduce的匹配行
- 21. Apache Beam/Flink ExceptionInChainedStubException
- 22. zipWithIndex Apache Flink
- 23. 如何在Hadoop的MapReduce的LZO壓縮?
- 24. Apache Flink的JoinFunction和CoGroupFunction如何不同?
- 25. 第三方API與Apache Flink的集成
- 26. Hadoop Mapreduce wordcount
- 27. Hadoop mapreduce編程
- 28. hadoop mapreduce model java
- 29. Hadoop和MapReduce
- 30. hadoop mapreduce teragen FAIL_CONTAINER_CLEANUP
在SO問題中沒有真正使用Hashtags,我建議您只是問你的問題並添加適當的標籤。 –
謝謝安傑洛! – Shu