apache-flink相关内容
我需要知道 Apache Flink 如何从检查点恢复其状态,因为在运行纯作业与从保存点恢复时,我看不到启动时间和在运算符中看到第一个事件之间的任何区别. 状态是否从检查点/保存点延迟加载? 解决方案 键控状态接口旨在使这种区别变得透明.正如 Dawid 所提到的,状态是在作业启动期间加载的.请注意,加载状态的含义取决于正在使用的状态后端. 在操作符状态的情况下,Checkpo
..
我正在尝试在独立的 Flink 集群上运行 Python Flink 应用程序.该应用程序在单节点集群上运行良好,但在多节点集群上会引发以下错误.java.lang.Exception: 用户定义的“open()"方法导致异常:复制文件时出错.请帮我解决这个问题.谢谢 我尝试执行的应用程序具有以下代码. from flink.plan.Environment import get_envi
..
我在 Flink 1.4.0 上使用 Table API.我有一些 Table 对象要转换为 Row 类型的 DataSet.该项目是使用 Maven 构建的,并在 IntelliJ 上导入.我有以下代码,IDE 无法解析方法 tableenv.toDataSet() 方法.请帮帮我.谢谢. ExecutionEnvironment env = ExecutionEnvironment.getE
..
我想从 state 中读取历史记录.如果状态为空,则读取 hbase 并更新状态并使用 onTimer 设置状态 ttl.问题是如何批量读取hbase,因为从hbase读取单条记录效率不高. 解决方案 一般来说,如果你想在 Flink 中缓存/镜像来自外部数据库的状态,最高效的方法是将数据库突变流式传输到 Flink -- 在换句话说,如果数据库支持,将 Flink 变成数据库变更数据捕获
..
在流处理问题中,我们有 3 个传感器,每个传感器每 8 毫秒生成一个带时间戳的样本(传感器的时间是同步的).所以我想合并每个时间戳的数据(如果有 3 个传感器,我们应该为每个时间戳输出 3 个合并的样本数据).此外,我们有一个 160 毫秒的时间限制,这样每个数据最多应该在 160 毫秒后输出,因为它是生成时间戳.所以我决定使用 Flink EventTime 概念和时间窗口.由于时间戳在每个传感
..
我想在 Apache flink 中创建键控窗口,以便每个键的窗口在键的第一个事件到达后 n 分钟执行.是否可以使用事件时间特性来完成(因为处理时间取决于系统时钟,并且不确定第一个事件何时到达).如果可能,请解释事件时间和水印的分配也给事件,并解释如何在 n 分钟后调用进程窗口函数. 下面是代码的一部分,可以让您了解我目前在做什么: //制作键控事件以便为一个键启动一个窗口KeyedStr
..
我正在使用 flink 表 api,使用 kafka 作为输入源,使用 json 作为表模式.提交程序时出现此错误:``程序结束时出现以下异常: org.apache.flink.client.program.ProgramInvocationException: main 方法导致错误.在 org.apache.flink.client.program.PackagedProgram.call
..
我试图使用 flink 从 postgre 获取数据.代码如下: dbData =env.createInput(JDBCInputFormat.buildJDBCInputFormat().setDrivername(Utils.properties_fetch("drivername")).setDBUrl(Utils.properties_fetch("dbURL")).setUserna
..
升级到 Apache Flink 1.4.2 后,我们每隔几秒就会在 3 个 TaskManager 上出现以下错误. 2018-06-27 17:33:46.632 [jobmanager-future-thread-2] DEBUG o.a.flink.runtime.rest.handler.legacy.metrics.MetricFetcher - 无法检索 QueryServiceG
..
嗨,我有一个用于 Flink 流处理的 Maven 项目.根据我从流中得到的消息,我开始了一个批处理,但目前我收到了一个错误. 我对这个 flink 世界很陌生,如果您有任何想法,请告诉我.这是我用来启动独立集群的代码. final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnviro
..
我有一个流要存储状态,我希望另一个流可以检索状态.这可能吗? 我在我的单元测试中尝试过,但似乎不起作用. 解决方案 目前无法让不同的流共享状态.即使属于同一流的不同算子也无法共享状态. 你唯一可以玩的就是使用静态字段在不同的线程之间共享状态,从而也共享流.但这只有在不同的任务由同一个 TaskManager 执行并因此在同一个 JVM 中运行时才有效.
..
我已经克隆了 Flink Training repo 并按照有关构建和部署的说明进行操作从这里 以熟悉Apache Flink.但是,构建并导入Eclipse IDE后,项目中存在错误.在 Flink Training Exercises 项目中,我发现生命周期配置未涵盖的 pom 插件执行中的错误:net.alchim31.maven:scala-maven-plugin:3.1.4:testC
..
我想确切地知道 水印值什么时候设为Long.MaxValue?(取消 SourceFunction 时?通过 cli 和网络面板取消作业?...) 这对应用程序意味着什么?(工作结束?工作失败?没有重新/开始?) 又该如何处理呢?(清除所有状态?计时器呢?正如我所见,在此状态下注册一个新计时器将使应用程序永远运行!如果我应该能够在最后一个水印中保留一个状态以便在以后的时间/运行中
..
自定义类 人 class Person{私有整数 ID;私人字符串名称;//getter 和 setter} Kafka Flink 连接器 TypeInformationinfo = TypeInformation.of(Person.class);TypeInformationSerializationSchema schema = new TypeInformationSeria
..
我正在使用flink从Azure数据湖读取数据.但是flink无法找到Azure数据湖文件系统.如何配置flink以了解Azure Data Lake文件系统.有人可以指导我吗? 解决方案 Flink 能够连接到任何 Hadoop 兼容的文件系统(即实现 org.apache.hadoop.fs.FileSystem).请参阅此处的说明:https://ci.apache.org/proj
..
我所做的是从 kafka 以 json 格式读取消息.例如 {"a":1,"b":2} 然后我对这条消息应用了一个过滤器,确保a对应的值为1,b的值为2.最后,我想将结果流输出到下游的kafka.但是,我不知道为什么编译器会说类型不匹配. 我的代码如下: val kafkaConsumer = new FlinkKafkaConsumer010(params.getRequired("
..
我的目标是使用 kafka 读取 json 格式的字符串,对字符串进行过滤,选择部分消息并将消息下沉(仍然是 json 字符串格式). 出于测试目的,我的输入字符串消息如下所示: {"a":1,"b":2,"c":"3"} 我的实现代码是: def main(args: Array[String]): Unit = {val inputProperties = new Properti
..
Spark 流提供用于终止 awaitTermination() 的 API.有没有类似的 API 可以在 t 秒后优雅地关闭 flink 流? 解决方案 您在 Flink 中的驱动程序(即 main 方法)在流式作业执行时不会保持运行.你的程序应该定义一个数据流,调用execute,然后终止.在 Spark 中,驱动程序保持运行(AFAIK),而 awaitTermination 与此相
..
我想知道是否可以创建一个类似于以下内容的 WindowAssigner: EventTimeSessionWindows.withGap(Time.seconds(1L)) 除了我不希望窗口在每个元素的事件时间中不断增长.我希望窗口的开始定义在接收到的第一个元素(对于那个键),并在 1 秒后结束,无论那一秒有多少元素到达. 所以假设它可能看起来像这样: EventTimeSession
..
是否可以在 Apache Flink 中在运行时动态添加新的数据流而无需重新启动作业? 据我所知,一个普通的 Flink 程序是这样的: val env = StreamExecutionEnvironment.getExecutionEnvironment()val text = env.socketTextStream(hostname, port, "\n")val windowCo
..