问题标签 [flink-streaming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
56027 浏览

apache-storm - Flink 和 Storm 之间的主要区别是什么?

Flink与 Spark 进行了比较,在我看来,这是错误的比较,因为它将窗口事件处理系统与微批处理进行了比较;同样,将 Flink 与 Samza 进行比较对我来说没有多大意义。在这两种情况下,它都会比较实时和批处理事件处理策略,即使在 Samza 的情况下“规模”较小。但我想知道 Flink 与 Storm 相比如何,后者在概念上似乎更相似。

我发现这个(幻灯片#4)记录了 Flink 的“可调节延迟”的主要区别。另一个提示似乎是Slicon Angle的一篇文章,该文章建议 Flink 更好地集成到 Spark 或 HadoopMR 世界中,但没有提及或引用实际细节。最后,Fabian Hueske 本人在接受采访时指出,“与 Apache Storm 相比,Flink 的流分析功能提供了高级 API,并使用更轻量级的容错策略来提供恰好一次处理的保证。”

所有这些对我来说有点稀疏,我不太明白这一点。有人能解释一下 Flink 完全解决了 Storm 中流处理的哪些问题吗?Hueske 所指的 API 问题及其“更轻量级的容错策略”指的是什么?

0 投票
1 回答
6650 浏览

java - 如何根据数据将一个数据流输出到不同的输出?

在 Apache Flink 中,我有一个元组流。让我们假设一个非常简单的Tuple1<String>. 元组可以在其值字段中具有任意值(例如“P1”、“P2”等)。可能值的集合是有限的,但我事先不知道完整的集合(因此可能存在“P362”)。我想根据元组内部的值将该元组写入某个输出位置。因此,例如,我希望具有以下文件结构:

  • /output/P1
  • /output/P2

在文档中,我只发现了写入我事先知道的位置(例如stream.writeCsv("/output/somewhere"))的可能性,但没有办法让数据的内容决定数据的实际结束位置。

我在文档中阅读了有关输出拆分的信息,但这似乎没有提供一种将输出重定向到不同目的地的方法,就像我想要的那样(或者我只是不明白这是如何工作的)。

这可以用 Flink API 来完成吗,如果可以,怎么做?如果没有,是否有第三方图书馆可以做到这一点,还是我必须自己构建这样的东西?

0 投票
1 回答
966 浏览

java - Flink Streaming java.lang.Exception:无法加载任务的可调用类

我正在尝试在本地运行基本的 Flink 流式传输作业(在 java 中)。当我使用 eclipse 运行我的应用程序时,它就像一个魅力。但是当我使用 Flink 命令行界面运行时,我得到以下异常

我正在运行 Flink-Kafka 集成示例: data-artisans

0 投票
1 回答
2491 浏览

java - Apache Flink 流式处理窗口 WordCount

我有以下代码来计算来自 socketTextStream 的单词。需要累积字数和时间窗口字数。该程序存在一个问题,即 cumulateCounts 始终与窗口计数相同。为什么会出现这个问题?根据窗口计数计算累积计数的正确方法是什么?

0 投票
1 回答
2975 浏览

scala - flatMap 函数中的 Apache Flink Streaming 类型不匹配

尝试在 scala 2.10.4 中使用 0.10.0 flink 版本的流 api。在尝试编译第一个版本时:

我收到编译时错误:

在我包含在项目中的 DataStream.class 的反编译版本中,有一些函数接受这种类型(最后一个):

这里有什么问题?如果您能提供一些见解,我将不胜感激。先感谢您。

0 投票
1 回答
1784 浏览

apache-flink - Flink:CoFlatMapFunction 中的共享状态

有点卡住了CoFlatMapFunction。如果我将它放在DataStream前面的窗口上似乎可以正常工作,但如果放在窗口的“应用”功能之后会失败。

我正在测试两个流,主要“功能”用于flatMap1不断摄取数据,控制流“模型”用于flatMap2根据请求更改模型。

我能够设置并看到 b0/b1 正确设置flatMap2,但flatMap1总是看到 b0 和 b1 在初始化时设置为 0。

我在这里遗漏了一些明显的东西吗?

0 投票
1 回答
1995 浏览

apache-flink - Flink InvalidTypesException:无法确定“类”中类型变量“K”的类型

Flink 0.10.0 最近刚刚发布。我需要从 0.9.1 迁移一些代码。但出现以下错误:

org.apache.flink.api.common.functions.InvalidTypesException:无法确定“class fi.aalto.dmg.frame.FlinkPairWorkloadOperator”中类型变量“K”的类型。这很可能是类型擦除问题。类型提取目前仅在返回类型中的所有变量都可以从输入类型推导出来的情况下支持具有泛型变量的类型。

这是代码:

要了解 InvalidTypesException 是如何发生的,我有另一个示例也抛出此异常,但我对此一无所知。在这个演示中,该程序适用于 scala.Tuple2,但不适用于 flink Tuple2。

0 投票
1 回答
852 浏览

apache-flink - Flink 扇出 flatMap

我正在使用 Flink 0.10.0 数据流。这是我的要求。

  • 我的源系统是广播消息的自定义系统。在我的自定义 SourceFunction 实现中,我实现了回调来侦听消息。
  • 每个回调都会收到不同类型的消息。
  • 我想解码/转换回调中收到的对象以发送到我的 SinkFunction。我相信我可以用 FlatMapFunction 或类似的东西来做到这一点。
  • 因为我有各种回调,所以我听的每个回调的解码逻辑都是不同的。我想它们不能有一个 FlatMapFunction,因为 IN 类型会不同。

如何设计具有以下拓扑的系统:

Source
|- FlatMap_1(处理回调1收到的消息类型)-> Sink
|- FlatMap_2(处理回调2收到的消息类型)-> Sink
|- FlatMap_3(处理回调3收到的消息类型)-> Sink
等。

我不想将一个的输出发送给另一个。这本质上是一个扇出,即我希望它们中的每一个都并行运行,并且还希望源能够确定将接收到的消息发送到哪个操作员。

我已经阅读了文档和示例,但找不到与此匹配的示例。将不胜感激这方面的帮助。

0 投票
2 回答
764 浏览

java - flink - 集群不使用集群

我已经设置了一个 3 节点集群,它非常均匀地分配任务(步骤?作业?),直到最近的集群都分配给了一台机器。

拓扑(我们仍然使用这个术语来表示 flink 吗?):

kafka (3 topics on different feeds) -> flatmap -> union -> map

在此处输入图像描述

这个设置有什么东西会告诉集群管理器把所有东西都放在一台机器上吗?

另外 - 图像中的“未设置”值是什么?我错过了一些步骤?还是一些待实现的 UI 功能?

0 投票
2 回答
2758 浏览

scala - 如何在 Apache Flink Streaming 0.10.0 中将 OVERWRITE 指定为 writeAsText?

我在scala中有一个方法

counts.writeAsText(path_to_file)

当文件已经存在并建议指定 File or directory already exists. Existing files and directories are not overwritten in NO_OVERWRITE mode. Use OVERWRITE mode to overwrite existing files and directories.. 但我还没有在 DataStream 类中找到接受org.apache.flink.core.fs.FileSystem.WriteMode. 只有一个签名接受 Long 毫秒。