建立算子图

bmvo0sr5  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(355)

大家早上好,
我已经使用apachestorm构建了拓扑,我发现它们公开的api的一个优点是可以“手动”连接图拓扑中的操作符。
例如,可以创建循环。
我想知道是否有一个最佳实践,以实现相同的“表现力”在Flink。
非常感谢!

oyxsuwqo

oyxsuwqo1#

flink中不支持循环拓扑。可以通过特定操作符执行迭代。除了循环之外,您还可以通过标准api定义图形,与spark相比,它相当灵活。许多dataset和datastream api都接受函数和类的自定义实现,如 RichMapFunction , RichFlatMapFunction 等等。这提供了极大程度的灵活性和可定制性以及模块化和可重用性。这需要一些时间来超越标准api,学习如何正确地定制flink作业,但这是值得的。
flink有一个“简单模式”,类似于spark的api,在这个模式中你可以做你需要的大部分事情。当您想要表达超出标准api范围和用例的内容时,您可以直接使用部分低于标准api的层,而不是像在spark中那样进行奇怪的变通。您可以扩展和自定义许多部分,然后插入所提供的操作符/触发器/源/接收器等。这主要是一个特征一个特征地记录下来的。

相关问题