我是Apache Flink的新手,正在尝试了解一些与Kafka一起扩展Flink流媒体作业的最佳实践。我无法找到合适答案的一些问题包括:
提前感谢您的支持,如果这些问题看起来有些基本,请道歉,但我正在尝试更好地掌握这项技术。我已经阅读了很多文档,但无可否认,由于我在这方面缺乏经验,可能无法将一些概念整合在一起。谢谢你的帮助!
>
持续查询支持已作为最新flink版本的一部分构建,您可以检查flink留档。
如果在flink术语中,将一个数据流读取到另一个数据流是指连接两个数据流,那么我们可以在一个公共键上连接它们并保持值状态。请注意,值状态在任务管理器中维护,而不是在任务管理器之间共享。否则,如果您暗示两个或多个流的联合,那么我们可以以这样的方式构建FlatMapFunction,即来自这些流的数据以标准格式出现。
工会示例:
val stream1: DataStream[UserBookingEvent] = BookingClosure.getSource(runmode).getSource(env)
.map(new ClosureMapFunction)
val stream2: DataStream[UserBookingEvent] = BookingCancel.getSource(runmode).getSource(env)
.map(new CancelMapFunction)
val unionStream: DataStream[UserBookingEvent] = stream1.union(stream2)
---
import org.apache.flink.api.common.functions.MapFunction
import org.json4s.jackson.JsonMethods.{parse => _, parseOpt => _}
import org.json4s.native.JsonMethods._
import org.slf4j.{Logger, LoggerFactory}
class CancelMapFunction extends MapFunction[String, Option[UserBookingEvent]] {
override def map(in: String): Option[UserBookingEvent] = {
val LOG: Logger = LoggerFactory.getLogger(classOf[CancelMapFunction])
try {
implicit lazy val formats = org.json4s.DefaultFormats
val json = parse(in)
..............
} catch {
case e: Exception => {
LOG.error("Could not parse Cancel Event= " + in + e.getMessage)
None
}
}
}
}
我正在尝试为ApacheFlink导入ScalaAPI流扩展,如中所述https://ci.apache.org/projects/flink/flink-docs-master/apis/scala_api_extensions.html 但是,我的ScalaIDE抱怨以下消息:对象扩展不是包的成员org.apache.flink.streaming.api.scala 我使用的是scala 2
我有以下代码来计算socketTextStream中的单词。累积字数和时间窗字数都是必需的。该程序存在累积计数始终与窗口计数相同的问题。为什么会出现这个问题?根据加窗计数计算累积计数的正确方法是什么?
安装(下载 这是Flink的默认配置。 关于这里发生了什么事,有什么建议吗?
我有2个使用kafka主题创建的流,我正在使用DataStream API加入它们。我希望将连接(应用)的结果发布到另一个kafka主题。我在外部主题中看不到连接的结果。 我确认我向两个源主题发布了正确的数据。不确定哪里出了问题。下面是代码片段, 创建的流如下所示。 流连接使用等于的连接执行,如下所示。 如下所述, 有什么线索吗,哪里出了问题?我可以在拓扑中看到可用的消息,谢谢
我想在Apache Flink中实现以下场景: 给定一个具有4个分区的Kafka主题,我想使用不同的逻辑在Flink中独立处理分区内数据,具体取决于事件的类型。 特别是,假设输入Kafka主题包含前面图像中描述的事件。每个事件具有不同的结构:分区1具有字段“a”作为关键字,分区2具有字段“b”作为关键字,等等。在Flink中,我希望根据事件应用不同的业务逻辑,所以我认为我应该以某种方式分割流。为了
我想在Apache Flink中做流媒体工作来做Kafka- 这应该是流式处理。