问题标签 [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 投票
2 回答
2917 浏览

java - kafka -> flink - 性能问题

我正在查看一些每秒生成约 30K 消息的 kafka 主题。我有一个 flink 拓扑设置来读取其中一个,聚合一点(5 秒窗口),然后(最终)写入数据库。

当我运行拓扑并删除除读取 - > 聚合步骤之外的所有内容时,我每分钟只能获得约 30K 消息。没有任何地方可以发生背压。

我究竟做错了什么?


编辑:

  1. 我无法更改有关主题空间的任何内容。每个主题都有一个分区,并且有数百个。
  2. 每条消息都是一个压缩的 thrift 对象,平均大小为 2-3Kb

看来我只能获得〜1.5 MB / s。不接近提到的 100MB/s。

当前代码路径:


0 投票
1 回答
3237 浏览

scala - apache flink:如何解释 DataStream.print 输出?

我是 Flink 的新手,试图了解如何最有效地使用它。

我正在尝试使用 Window API,从 CSV 文件中读取。读取的行被转换为一个案例类,因此

而且,这就是我读取行的方式:

后来,使用一个简单的窗口,我试图打印最高环境温度,因此:

输出包含这些(来自一堆 DEBUG 日志语句):

我想了解的是,人们如何解释这一点?重复的 1>s代表什么?

让我感到困惑的是,probe-987f2cb6与我的数据集中的环境温度29.43不对应。它对应于不同的值(准确地说是 14.72)。

仅供参考,以下是数据集:

我可能缺少很多东西。请刺激我。

忘了提:我使用的是Flink 0.10.0。

0 投票
1 回答
344 浏览

java - Flink - 结构化作业以最大化吞吐量

我有 4 种类型的 kafka 主题和每种类型的 65 个主题。目标是对数据进行一些简单的窗口聚合并将其写入数据库。

拓扑将类似于:

kafka -> 窗口 -> 减少 -> 数据库写入

在这个组合中的某个地方,我想要/需要做一个联合- 或者可能是几个(取决于每次组合多少主题)。

主题中的数据流范围从 10K 到 >200K 消息/分钟。

我有一个具有 30 个核心/节点的四节点 flink 集群。如何构建这些拓扑来分散负载?

0 投票
1 回答
878 浏览

apache-flink - kafka 源流上的事件时间窗口

Kafka服务器中有一个主题。在程序中,我们将此主题作为流读取并分配事件时间戳。然后对这个流做窗口操作。但该程序不起作用。调试后,似乎没有执行WindowOperator的processWatermark方法。这是我的代码。

为什么会这样?如果我在“assignTimestamps(timestampExtractor)”之前添加“keyBy(keySelector)”,那么程序就可以工作。任何人都可以帮助解释原因吗?

0 投票
1 回答
3336 浏览

apache-flink - Flink 流式事件时间窗口排序

我在理解围绕事件时间窗口的语义时遇到了一些麻烦。以下程序生成一些带有时间戳的元组,这些时间戳用作事件时间并进行简单的窗口聚合。我希望输出与输入的顺序相同,但输出的顺序不同。为什么输出相对于事件时间无序?

输入:

结果:

0 投票
1 回答
2034 浏览

apache-flink - Flink:如何使用命令行界面取消正确的作业?

我有一个运行多个流作业的 Flink 服务器。这些作业是使用flink run命令启动的,并且基本上会一直运行,直到您停止它们为止。现在我想取消一个特定的工作。当我这样做时flink list,我会得到这样的东西:

使用此输出无法取消正确的作业,因为无法识别哪个作业是哪个作业。所有的工作都只是以Flink Streaming Job作为他们的名字,所以我不知道该选哪个。

有没有办法更改出现的工作名称flink list?如果没有,有没有办法通过命令行获取有关正在运行的作业的附加信息(例如,它是从哪个 JAR 文件开始的,它的主类是什么等)。如果没有,有没有办法从 中获取 Job-ID flink run,所以我可以将它存储在某种 PID 文件中,然后使用该 ID 来取消 Job?

0 投票
1 回答
802 浏览

twitter - Flink 流式 Twitter 示例不起作用

我正在尝试运行官方示例,该示例展示了如何将 Apache Flink Streaming 与 Twitter 一起使用: https ://github.com/apache/flink/tree/master/flink-streaming-examples/src/main/java/org/apache /flink/流/示例/推特

如果我不提供 properties.file 的路径,将使用 TwitterStreamData.java。有了“看起来像推文的数据”就可以了。但是,如果我想接收真正的推文(提供正确的属性文件),执行将停止并等待(不抛出异常)。

代码调试后我找到了执行停止并等待的地方:

程序运行直到行

并等待。

属性文件没问题,因为我在另一个示例中使用了它(没有 apache flink 的推文流式传输)并且有效。

0 投票
1 回答
1291 浏览

apache-kafka - FlinkKafkaConsumer082 auto.offset.reset 设置不起作用?

我有一个 Flink 流程序,它从 Kafka 的主题中读取数据。在程序中,auto.offset.reset 设置为“最小”。在 IDE/Intellij-IDEA 中测试时,程序总是可以从主题的开头读取数据。然后我建立了一个 flink/kafka 集群并将一些数据生成到 kafka 主题中。我第一次运行流作业时,它可以从主题的开头读取数据。但是在那之后我停止了流式作业并再次运行它,它不会从主题的开头读取数据。我怎样才能让程序总是从主题的开头读取数据?

0 投票
1 回答
910 浏览

apache-flink - 如何在 Flink 流中的空窗口上执行功能?

我编写了一个 Flink 程序,它从一个简单的 kafka 流计算每个键控窗口的事件数。我工作得很好,快速而准确。当源停止时,我想0在每个窗口上都有计算结果,但没有发送结果。该功能只是不执行。我认为这是因为 Flink 的惰性操作行为。

有什么推荐吗?

0 投票
2 回答
1098 浏览

apache-flink - 在 Apache Flink 中创建 DataStream 时出错

使用fromElements函数创建DataStream时出错

下面是expeption -

原因:java.io.IOException:无法从源中反序列化元素。如果您使用的是用户定义的序列化(Value 和 Writable 类型),请检查序列化函数。序列化器是 org.apache.flink.streaming.api.functions.source.FromElementsFunction.run(FromElementsFunction.java:121) 的 org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer@599fcdda .flink.streaming.api.operators.StreamSource.run(StreamSource.java:58) 在 org.apache.flink.streaming.runtime.tasks.SourceStreamTask.run(SourceStreamTask.java:55) 在 org.apache.flink.streaming .runtime.tasks.StreamTask.invoke(StreamTask.java:218) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:584) at java.lang.Thread.run(Thread.java:745 )