任何人都可以比較Flink和Spark作爲機器學習的平臺嗎?迭代算法可能更好嗎?鏈接到一般Flink vs Spark討論:What is the difference between Apache Spark and Apache Flink?作爲大型機器學習平臺的Apache Flink vs Apache Spark?
23
A
回答
22
聲明:我是Apache Flink的PMC成員。我的答案着重於Flink和Spark中執行迭代的差異。
Apache Spark通過循環展開執行迭代。這意味着對於每次迭代,一組新的任務/操作員被安排並執行。 Spark非常高效,因爲它非常適合低延遲任務調度(同樣的機制用於Spark串流btw),並在迭代中緩存內存中的數據。因此,每次迭代都會根據內存中保存的上一次迭代的結果進行操作。在Spark中,迭代實現爲常規for-loops(請參閱Logistic Regression example)。
Flink以迭代方式執行程序作爲循環數據流。這意味着數據流程序(及其所有操作符)只調度一次,數據從迭代尾部反饋回頭。基本上,數據在迭代中圍繞操作員循環流動。由於運營商只安排了一次,他們可以在所有迭代中保持狀態。 Flink的API提供了兩個專用iteration operators來指定迭代:1)批量迭代,其概念上類似於循環展開,以及2)delta iterations。 Delta迭代可以顯着加快某些算法的速度,因爲隨着迭代次數的增加,每次迭代的工作量都會減少。例如,Delta迭代PageRank實現的第10次迭代比第一次迭代快得多。
相關問題
- 1. Apache Spark vs Apache Spark 2
- 2. Apache Spark:多機器學習的並行化算法
- 3. Apache Spark vs Apache Ignite
- 4. Kafka Consumer Vs Apache Flink
- 5. 使用Apache Spark/Apache Flink擴展
- 6. 如何連接Azure機器學習和Spark Streaming或Apache Storm
- 7. Apache Spark和機器學習 - 在生產中使用
- 8. 將任意Java機器學習與Apache Spark集成
- 9. 使用Apache Mahout機器學習庫
- 10. 學習Apache Ofbiz?
- 11. 學習Apache POI
- 12. 大型機器學習
- 13. 學習Python/Apache/Linux
- 14. Apache Phoenix vs Hive-Spark
- 15. Apache Apex與Apache Flink
- 16. ALS機器學習算法在Apache Spark Mllib中的等級是什麼
- 17. Apache spark mllib.linalg向量和spark.util向量之間的區別機器學習
- 18. 學習NetBeans平臺:annotations vs layer.xml文件
- 19. Apache Flink - 保持最大值
- 20. Apache Flink的XmlInputFormat
- 21. 學習Netbeans平臺
- 22. 機器學習形狀和類型的機器學習
- 23. Apache Beam/Flink ExceptionInChainedStubException
- 24. zipWithIndex Apache Flink
- 25. Kafka Streaming + Spark Streaming +機器學習
- 26. Spark機器學習AST比較
- 27. 管理平臺上的Apache不能與Apache找到機架
- 28. Apache Flink作業支持多流支持
- 29. Apache Flume與Apache Flink的區別
- 30. 如何分辨機器學習模型的學習型
Flink是一個相對年輕的項目,很難將這個新的有前景的框架與Spark這樣的巨大項目進行比較。 – ipoteka
我現在不回答這個問題,因爲我們將在兩個ML框架的不遠的將來有更深入的瞭解。現在我完全同意@ipoteka。 –
您應該查看Flink最近創建的機器學習庫:http://ci.apache.org/projects/flink/flink-docs-master/libs/ml/。 正如你在這裏看到的,我們已經計劃做更多:http://goo.gl/h9Qmt3 –