问题标签 [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.
google-cloud-dataflow - 如何从 Flink 运行器上的 Google Dataflow (Apache Beam) 向 Kafka 发送消息
我正在尝试编写一个概念验证,它从 Kafka 获取消息,使用 Flink 上的 Beam 对其进行转换,然后将结果推送到不同的 Kafka 主题。
我使用 KafkaWindowedWordCountExample 作为起点,这是我想做的第一部分,但它输出到文本文件而不是 Kafka。FlinkKafkaProducer08 看起来很有希望,但我不知道如何将它插入管道。我在想它会用 UnboundedFlinkSink 或类似的东西包裹起来,但这似乎不存在。
关于我想要做什么的任何建议或想法?
我正在运行最新的孵化器光束(截至昨晚来自 Github)、集群模式下的 Flink 1.0.0 和 Kafka 0.9.0.1,所有这些都在 Google Compute Engine(Debian Jessie)上。
apache-flink - 从 Apache Flink 查询数据
我正在寻找从本土流媒体服务器迁移到 Apache Flink。我们有一个类似 Apache Storm 的 DRPC 接口,用于针对处理拓扑中保存的状态运行查询。
例如:我有一堆传感器,我正在运行移动平均线。我想对拓扑运行查询并返回平均值高于固定值的所有传感器。
Flink 中是否有等价物,或者如果没有,实现等价功能的最佳方法是什么?
apache-flink - 如何为每个任务管理器(或每个节点)运行一个源?
我已经实现了打开固定 UDP 端口并监听它的源。因此,我想每个任务管理器只运行一个源(在我的情况下,我每个节点运行一个任务管理器),因为过度java.net.BindException: Address already in use
会引发异常。
我在测试 Apache Flink 的 HA 时注意到了这个问题。当我关闭一个任务管理器时,Apache Flick 开始尝试在一个节点上运行具有相同端口的两个源。
那么,如何为每个任务管理器(或每个集群节点)运行一个源?
apache-flink - flink Stream NoSuchMethodError:org.apache.flink.api.common.ExecutionConfig.setRestartStrategy
java.lang.NoSuchMethodError:
org.apache.flink.api.common.ExecutionConfig.setRestartStrategy(Lorg/apache/flink/api/common/restartstrategy/RestartStrategies$RestartStrategyConfiguration;)
在 com.WriteIntoKafka.main(WriteIntoKafka.java:53)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method .invoke(Method.java:606)
在 org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:497)
在 org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:395)
在 org.apache.flink.client.program.Client.runBlocking(Client.java:252)
在 org.apache.flink.client .CliFrontend.executeProgramBlocking(CliFrontend.java:676)
在 org.apache.flink.client.CliFrontend.run(CliFrontend.java:326)
在 org.apache.flink.client.CliFrontend.parseParameters(CliFrontend.java:978)
在org.apache.flink.client.CliFrontend.main(CliFrontend.java:1028)
scala - 在 Flink [Scala] 中使用 RollingSink 将使用 Avro 序列化的对象写入 HDFS
我正在尝试使用 Flink 中的 RollingSink 将序列化为 AVRO 的案例类写入 HDFS。为了使 avro 文件可以被 HDFS 反序列化,我使用了包装 FSDataOutputStream 的 DataFileWriter。当我尝试在 DataFileWriter 和 FSDataOutputStream 之间进行同步以关闭 HDFS 上的数据文件时,会引发异常,实际上我在每个其他文件中都获取了数据。有没有办法在 Flink Writer 实现中将 fs 流与 Avro writer 同步?
我曾尝试使用 DataFileWriter close() flush() sync() fsync() 但都失败了。同步方法似乎表现最好。我也尝试过在 write 方法中同步,这似乎有效,但仍然产生错误,我无法验证是否所有数据都保存到文件中。
尝试使用上述代码运行 RollingSink 会出现以下异常:
apache-flink - 如何为具有状态的自定义触发器实现保存点?
我已经实现了自定义WindowAssigher
:
, Window
:
和Trigger
:
用于通过超时检测会话结束,即如果最后一个事件是 N 秒前,则评估窗口函数。如您所见,我在 ValueState 中保存最后一个事件时间戳,因为我想在失败后恢复它。
似乎我应该Checkpointed
在此触发器中实现保存/恢复保存点(和检查点)快照的接口,因为我不想在重新部署流程期间丢失触发器状态。
那么,任何人都可以向我解释如何SessionTrigger
在部署期间正确保存触发器(以及可能相关的窗口)的状态吗?
据我了解,我只应该实现Checkpointed
接口,SessionTrigger
因为只有它有状态。正确的?SessionWindow
-s 和怎么样SessionWindowAssigner
?它们会在自动部署后恢复还是我应该手动进行?
apache-flink - 如何正确实现 HTTP 接收器?
我想通过 HTTP 协议将我的 DataStream 流的计算结果发送到其他服务。我看到了两种可能的实现方式:
- 在接收器中使用同步 Apache HttpClient 客户端
- 在接收器中使用异步 Apache HttpAsyncClient 客户端
问题:
我应该在接收器中使用同步还是异步 HTTP 客户端?
如果我使用同步客户端,它将阻塞接收器,并且通过背压 Flink 将阻塞源。正确的?
如果我将使用异步客户端,它不会阻止接收器。正确的?
累加器不是线程安全的?即我可以在异步回调中使用它吗?
RuntimeContext 不是线程安全的?即我可以在异步回调中使用它吗?
apache-flink - 为什么只使用了一个 GlobalWindow 实例?
看这个例子:
谁能解释我为什么在这个例子中使用GlobalWindow
(created inside GlobalWindows#assignWindows
) 的一个实例?
似乎对于任何传入的事件 ID,都应该创建自己的窗口,即Window(a)
事件a
、Window(b)
事件b
等,因为据我了解,Flink 正在使用 Window 的实例来关联对应的事件,例如,所有a
事件都应该与之关联Window(a)
。在这种情况下,只有所有a
与Window(a)
a
b
GlobalWindow
apache-flink - 如何计算流中的唯一单词?
有没有办法使用 Flink Streaming 计算流中唯一单词的数量?结果将是不断增加的数字流。