DAG(有向無環圖)執行大數據很常見。我想知道Apache Flink如何實現迭代。因爲它可以是一個循環圖。Apache Flink如何實現迭代?
6
A
回答
5
如果Flink執行迭代程序,數據流圖不是DAG,但允許循環。然而,這個週期不是任意的,必須遵循一定的模式,以允許Flink在一定程度上控制這個循環流。
其他系統通常沒有嚴格的技術原因不支持週期。以通用方式允許循環通常是禁止的,因爲它可能導致無限循環(即,一個元組永遠旋轉循環並且程序不會終止)。
Flink通過計算迭代次數來跟蹤週期。通過這種方式,Flink可以跟蹤哪個元組屬於哪個迭代,並且可以例如避免來自新迭代的元組「從新元代接替」元組一次。此外,它允許Flink檢測迭代結果n
和n+1
是否相等。相同的結果表示完成的計算允許Flink打破無限循環並終止(這適用於所謂的定點迭代)。
有關詳細讀一下這個研究報告:https://dl.acm.org/citation.cfm?id=2350245
這裏描述的迭代程序中的用法:https://ci.apache.org/projects/flink/flink-docs-release-0.10/apis/programming_guide.html#iteration-operators
相關問題
- 1. 迭代器實現
- 2. 我們如何遍歷實現迭代
- 3. 如何在Java中實現迭代器?
- 4. 如何實現等距「迭代器」
- 5. Apache Apex與Apache Flink
- 6. 如何實現std-like迭代器的自定義實現?
- 7. Apache Beam/Flink ExceptionInChainedStubException
- 8. zipWithIndex Apache Flink
- 9. Apache Flink的XmlInputFormat
- 10. Flink Markov模型實現
- 11. 在迭代中實現wait_for
- 12. 迭代器實現問題
- 13. MySQL的實現迭代器
- 14. 實現迭代深化
- 15. 實現可迭代在Java
- 16. 實現一個迭代
- 17. 迭代最近點實現
- 18. 類實現迭代循環
- 19. 從代碼中取消Apache Flink作業
- 20. flink-streaming-java在Apache Flink中不可用
- 21. Apache Flink的JoinFunction和CoGroupFunction如何不同?
- 22. 如何與Apache Flink會話流?
- 23. 如何導入Apache Flink SNAPSHOT工件?
- 24. Apache Flink:如何創建並行JDBC InputFormat?
- 25. Kafka Consumer Vs Apache Flink
- 26. Apache Flink Kafka集成
- 27. Apache Flink流縮放
- 28. Apache Flink Kakfa XML流
- 29. 如何爲現有的單鏈表實現迭代器?
- 30. 如何使用異步代碼實現sequntial迭代
技術上,弗林克不分配迭代計數器每個元組。相反,它會執行每次迭代,然後等待,直到爲此迭代處理完所有元素。只有這樣,下一次迭代纔會開始。 –
更新了我的答案。 downvote很難... :) –