Flink参考数据建议/最佳实践

问题描述 投票:1回答:1

寻找有关存储/访问Flink参考数据的位置的一些建议。这里的用例非常简单 - 我有一个包含国家列表的列文本文件。我正在传输推特数据,然后根据推文的(解析的)位置字段匹配文本文件中的国家/地区。在IDE(Eclipse)中它很好,因为我在我的Flink Mapper中通过静态Build方法启动例程时填充了静态ArrayList(即实现Flinks MapFunction)。这个类现在是内部静态的,否则它会在序列化时获得衬衫。 Point是,当在运行时从流中调用重写的map函数时,国家数据的静态数组是它们的等待,完全填充并准备匹配。有魅力。但是,当部署到Flink集群中时(上周我花了很多时间来实际获取代码来查找文本文件),该数组仅作为Build方法的一部分进行填充。当使用时,数据已经神秘地消失了,我的数组大小为0.(因此,没有找到很多匹配。因此,2个问题 - 为什么它在Eclipse中工作而不在部署上(渲染)很多Eclipse单元测试也毫无意义。或者更一般地说,在Flink中交叉引用这种静态的,固定的参考数据的正确方法是什么?(并且在Eclipse和Eclipse中都可以找到它的方式)簇...)

apache-flink flink-streaming
1个回答
0
投票

处理静态参考数据的标准方法是在openRichMapFunction or RichFlatMapFunction方法中加载数据。丰富的函数具有openclose方法,这些方法对于创建和完成本地状态非常有用,并且可以访问运行时上下文。

© www.soinside.com 2019 - 2024. All rights reserved.