我是Flink的新人。我正在编写一个简单的Flink POC程序,在这里我能够获得预期的输出。但我无法获得钥匙和车窗操作的内部信息。以下是我的代码, 在部署Flink作业时,我在Flink UI中看到以下图表, 任务展示台 从上图中,我完全理解了它使用了2个任务和4个插槽,每个任务有2个并行性。第一个任务有源,pojo映射器第二个任务有sum函数,sink函数。 现在的问题是, > KeyBy和W
我有一个简单的作业,从ActiveMQ源读取 当我看到Flink仪表板时,我看到此作业仅在一个TaskManager中运行,而另一个TaskManager中没有作业。我通过检查计划中的每个操作员来验证这一点,也在任务管理器的UI页面中,管理器的第一页有所有可用插槽。我附上以下图片以供参考。 我配置错了吗?我的理解差距在哪里?有人能解释一下吗?
我想使用Flink流媒体以低延迟处理市场数据( 我有一组计算,每个都订阅三个流:缓慢移动的参数数据、股票价格和汇率。 例如。 Params(缓慢滴答:每天一次或两次): 资源(每秒多次滴答声): fx(每秒多次滴答声): 每当任何股票、外汇汇率或参数数据发生变化时,我都想立即计算结果并将其输出为新流。这在逻辑上可以表示为连接: 例如选择价格=(params.strike-asset.spot)*f
假设一个正在运行一个设置为并行的集群 使用每个任务槽运行多个TM 使用多个任务槽运行单个/几个TM 我们正在运行版本为1.6.3的Flink群集。Flink 1.7发行说明指出,“Flink现在正确地支持具有多个插槽的TaskManager”。在以前的版本中,是否建议从单个插槽开始?
假设我们有多个数据流,它们共享一些共同的特性。 例如,我们有一个教师流和一个学生流,它们都有一个年龄字段。如果我想从实时流中找出最大的学生或老师,我可以实现一个运算符,如下所示。 为了找出最年长的老师,我们需要实现一个类似的操作符,如下所示 但实际上这两个操作符有共同的流程逻辑,所以我的想法是定义一个父类,比如People。 然后学生和教师可以定义为他们的子类,也可以保留自己的字段。 在这种情况下
我有一个为Kafka主题生成的持续JSONArray数据,我想处理具有EventTime特性的记录。为了达到这个目标,我必须为JSONArray中包含的每个记录分配水印。 我没有找到一种方便的方法来实现这个目标。我的解决方案是消耗来自DataStreamSource的数据 主要代码如下所示: <代码>DataStreamSource 毫无疑问,代码似乎没有问题,运行时也没有错误。但ProcessW
我想离开加入流到桌子上。 这显然是一个简化的演示场景。在使用更大的生产数据集之前,我想了解如何使用Flink API通过玩具数据集实现这一点。 表联接上的文档显示了如何联接两个表并取回另一个表,这不是我想要的: https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/tableApi.html#joins Dat
我有一份Flink的工作,我尝试在后端类型RockDB中使用键控流状态函数(MapState), MyRichMapFunction是一个有状态函数,它扩展了RichMapFunction,RichMapFunction有以下代码, 将来,我想重新缩放并行度(从2到4),所以我的问题是,如何实现可重新缩放的键控状态,以便在更改并行度后,我可以将相应的缓存键控数据获取到其相应的任务槽中。我试图探索这
我正在使用kafka在java中进行poc项目- 在Kafka上,将产生数量不可预测的事件,从0到数千个事件/秒,例如关于特定主题的事件。 Flink将消耗此事件,并应每秒陷入弹性搜索每个状态中的事件数ex: 我有10个状态:<代码>[创建,…,删除] 平均生命周期为15分钟。状态每秒可以更改两次。理论上可以增加新的州。 为了每时每刻都让溪流下沉,我想用Flink的时间窗https://flink
我试图理解Flink中的并行是如何工作的。本文件https://ci.apache.org/projects/flink/flink-docs-release-1.9/concepts/programming-model.html似乎表明水槽的平行度等于1。在我的例子中,我正在向我的接收器中的HBase写信——这是否意味着只有一个任务(线程?)哪个将写入HBase?它是否没有为应用程序设置全局并行
我正在尝试编写一个Flink应用程序,它从Kafka读取事件,从MySQL丰富这些事件并将这些数据写入HBase。我正在中进行MySQL丰富,我现在正在尝试弄清楚如何最好地写入HBase。我想批量写入HBase,所以我目前正在考虑使用,后跟标识(仅返回),然后编写,它获取记录列表并批处理放入。 这是正确的做事方式吗?仅仅为了进行基于时间的缓冲而使用所有窗口和应用窗口感觉很奇怪。
我想在一个操作符中接收和处理三个流。例如,Storm中实现的代码如下: <代码>生成器。setBolt(“C\u螺栓”,C\u螺栓(),parallelism\u提示)。字段分组(“A\u bolt”,“TRAINING”,新字段(“word”))。字段分组(“B\U螺栓”,“分析”,新字段(“word”))。所有分组(“A\U螺栓”、“总和”) 在Flink中,实现了和的处理: 但我不知道如何添
我有两条小溪。它们都是1小时窗口内的聚合数据。我想压缩这些流,以便将相同时间跨度上的聚合组合在一起,如果现在存在这样的对应匹配,则可能使用空值。 我怎样才能做到这一点?
Flink转换(连接)流中有一些元素正在重新处理,即使它们没有被修改。 假设我们有3个元素:1、2和3。插入它们时,会发生以下情况: 插入第一个元素1时,输出为:1 插入第二个元素2时,输出为:1- 在最后一次插入中,1或2没有任何更改,因此没有理由重新处理它们。 再处理规则: 只有同一出版商的书籍会被重新处理。这意味着当插入出版商2的书籍时,只有出版商2的书籍会被重新处理。我们的目标是不重新处理
我有一个特定的任务,就是使用Apache Flink和一些附加逻辑将两个数据流连接到一个聚合中。 基本上我有两个数据流:事件流和所谓的元事件流。我使用Apache Kafka作为消息主干。我试图实现的是根据元事件中给出的信息触发评估的聚合/窗口。基本情况是: 事件的数据流开始发出的记录; 记录基于某个键在某个聚合或窗口中不断累积; 元事件数据流接收一个带有给定键的新,该键还定义了将在事件数据流中发