1

大家早上好,

我已经使用 Apache Storm 构建拓扑,我发现它们公开的 API 的一个好处是可以“手动”连接图形拓扑中的运算符。
例如,您可以创建循环。

我想知道是否有最佳实践可以在 Flink 中实现相同的“表现力”。

非常感谢!

4

1 回答 1

2

Flink 不支持循环拓扑。您可以通过特定的运算符执行迭代。除了循环,您可以通过标准 API 定义图形,与 Spark 相比,它相当灵活。许多 DataSet 和 DataStream API 都接受函数和类的自定义实现,例如RichMapFunctionRichFlatMapFunction等等。这提供了极大的灵活性和可定制性以及模块化和可重用性。超越标准 API 并学习如何正确自定义 Flink Jobs 需要一些时间,但这是值得的。

Flink 有一个“easy-mode”,类似于 Spark 的 API,你可以在其中做大部分你需要的事情。当您想要表达超出标准 API 范围和用例的内容时,您可以直接使用部分低于标准 API 的层,而不是像在 Spark 中那样做奇怪的变通方法。您可以扩展和自定义许多部分,然后插入以代替提供的操作符/触发器/源/接收器等。这主要是按功能记录的。

于 2016-09-27T15:30:49.897 回答