如何在Apache Flink中的并行执行之间共享信息



我想知道是否有任何方法可以在运行时在Apache Flink中的一个操作员中的并行执行之间传输信息?我只需要发送一些消息。Flink中的广播变量不起作用,因为它无法在运行时广播。

,因为弗林克尚未支持广播和钥匙流到相同的功能(所谓的"侧输入支持"(,所以做你的事情变得有些棘手想要没有外部共享状态。但是我认为有可能,迭代。

例如。对于K均值,您将<point, centroid id>作为元组,其中输入值的centroid ID为null。通过对输出<point, centroid id, distance>的自定义flatmap进行分区。然后按点重新分配并找到最接近的质心。输出<point, centroid id>,然后通过Centroid ID和过程使用自定义地图进行重新分配,以跟踪质心中心点。发射更新的<center point, centroid id>,并将此迭代返回到顶部。

因此,第一个自定义flatmap需要以不同的方式处理真实点(带有无效的质心ID(和质心(Centroid Point,Centroid ID(,在此将其添加到其状态下,因此它可以计算任何实际点的距离接收。

相关内容

  • 没有找到相关文章

最新更新