Apache Spark声称其操作符(节点)是“无状态的”。这使得Spark的架构可以使用更简单的协议来处理恢复、负载平衡和处理滞后者等问题。
另一方面,Apache Flink将其操作符描述为“有状态的”,并声称状态对于机器学习等应用程序是必需的。然而,Spark程序能够在不维护“状态”的情况下向前传递信息并维护RDD中的应用程序数据。
这里发生了什么?Spark不是真正的无状态系统吗?或者Flink声称状态对于机器学习和类似应用程序是必需的是不正确的吗?还是这里有一些额外的细微差别?
我感觉我没有真正理解“有状态”和“无状态”系统之间的区别,如果可以解释一下就好了。