Flink - 构建运算符图

时间:2016-09-27 12:04:27

标签: apache-flink flink-streaming stream-processing

大家早上好,

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

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

非常感谢你!

1 个答案:

答案 0 :(得分:2)

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

Flink有一个“简单模式”,类似于Spark的API,你可以在其中完成你需要的大部分工作。当您想要表达超出范围的内容和标准API的用例时,您可以直接使用部分低于标准API的层,而不是像在Spark中那样进行奇怪的解决方法。有许多部分可以扩展和定制,然后插入所提供的操作符/触发器/源/接收器等等。这主要是按功能记录的功能。