flink
文章平均质量分 85
该专栏主要详细的介绍了Flink的所有编程指南。
666呀
点点滴滴会聚江河湖海
展开
-
flink(八)两阶段提交(备份别人的)
两阶段提交在Flink的两阶段提交中,JobManager充当协调者,TaskManager中的Source、Operator、Sink充当参与者,他们之间的通信有Checkpoint触发,其中barrier是核心中的核心。两阶段提交是实现精确一次性语义的核心原理。其核心原理就是在Barrier对齐的情况下所有的算子都成功的完成了Checkpoint,就完成了真正的两阶段提交。JobManager向Source发送Barrier,开始进入pre-Commit阶段,当只有内部状态时,pre-commit原创 2021-12-23 19:16:38 · 1358 阅读 · 0 评论 -
flink(七)反压的原理(别人的博客,自己备份一下)
网络流控网络流控的作用如上是一张网络流控的图,Producer的吞吐率是2MB/s,Consumer是1MB/s,此时在网络通信时Producer的速度是比Consumer要快的,有1MB/s的速度差。假定两端都有一个Buffer,Producer端有一个发送用的Send Buffer,Consumer端有一个接收用的Receive Buffer,在网络端的吞吐率是2MB/s,5s后Receive Buffer可能就撑不住了,这时候会面临两种情况:如果Receive Buffer是有界的,这时候新原创 2021-12-23 19:14:52 · 618 阅读 · 0 评论 -
flink DataStream API(六)算子-joining
joining窗口连接将共享一个公共键并位于同一窗口中的两个流的元素连接起来。这些窗口可以通过使用窗口分配器来定义,并在来自两个流的元素上进行计算。然后将两侧的元素传递给用户定义的 JoinFunction 或 FlatJoinFunction,用户可以在其中输出满足连接条件的结果。一般用法可以总结如下:stream.join(otherStream) .where(<KeySelector>) .equalTo(<KeySelector>) .win原创 2021-11-17 15:47:36 · 911 阅读 · 0 评论 -
flink DataStream API(六)算子-window
window窗口是处理无界流的核心。Windows将流分成大小有限的“桶”,我们可以在这些桶上进行计算。一个 Flink窗口化程序的一般结构如下所示。第一个代码段引用键控流,而第二个代码段引用非键控流。可以看到,唯一的区别是键控流的keyBy(…)调用和非键控流的window(…)调用。keyed Windowsstream .keyBy(...) <- keyed versus non-keyed windows .window(..原创 2021-11-17 14:42:00 · 897 阅读 · 0 评论 -
flink DataStream API(六)算子-概述
文章目录Operators概述DataStream TransformationsMapFlatMapFilterKeyByReduceWindowWindowAllWindow ApplyWindowReduceUnionWindow JoinInterval JoinWindow CoGroupConnectCoMap, CoFlatMapIteratePhysical Partitioning(物理分区)自定义分区随机分区RescalingBroadcastingTask Chaining and R原创 2021-08-23 12:56:10 · 339 阅读 · 0 评论 -
flink DataStream API(五)用户自定义函数
文章目录用户自定义函数实现一个接口匿名类Java 8 LambdasRich functions累加器和计数器如何使用累加器:自定义累加器用户自定义函数大多数操作都需要用户自定义函数。我们还介绍了Accumulators,可用于深入了解您的 Flink 应用程序。实现一个接口最基本的方法之一是实现提供的接口:class MyMapFunction implements MapFunction<String, Integer> { public Integer map(String原创 2021-08-20 17:45:06 · 293 阅读 · 0 评论 -
flink DataStream API(四)状态和容错-状态后端
文章目录状态后端状态后端Flink 提供了不同的状态后端,用于指定状态的存储方式和位置。状态可以位于 Java 的堆内或堆外。这意味应用程序可以保持非常大的状态。默认情况下,配置文件flink-conf.yaml确定所有flink作业的状态后端。但是,可以在每个作业的基础上覆盖默认状态后端,如下所示。有关可用状态后端、它们的优点、限制和配置参数的更多信息,请参阅Deployment & Operations中的相应部分。StreamExecutionEnvironment env = St原创 2021-08-20 16:16:51 · 130 阅读 · 0 评论 -
flink DataStream API(四)状态和容错-checkpointing
文章目录checkpointing前提条件启用和配置`checkpoint`相关的配置选项选择检查点存储迭代作业中的状态检查点checkpointingFlink 中的每个函数和算子都可以是有状态的。有状态函数在单个元素/事件的处理过程中存储数据,使状态成为任何类型的更复杂操作的关键组成部分。为了使状态能够容错,Flink需要对状态进行检checkpoint。checkpoint允许Flink恢复流中的状态和位置,为应用程序提供与无故障执行相同的语义。前提条件Flink的checkpoint机制与原创 2021-08-20 15:57:02 · 351 阅读 · 0 评论 -
flink DataStream API(四)状态和容错-广播状态模式
文章目录广播状态模式提供的APIBroadcastProcessFunction 和 KeyedBroadcastProcessFunction重要的注意事项广播状态模式在本节中,您将了解如何在实践中使用广播状态。请参阅有 Stateful Stream Processing 以了解有状态流处理背后的概念。提供的API为了展示所提供的 API,在展示它们的全部功能之前,我们将从一个示例开始,然后再展示它们的完整功能。在此示例中,第一个流将包含具有 Color 和 Shape 属性的 Item 类型原创 2021-08-20 13:13:01 · 363 阅读 · 0 评论 -
flink DataStream API(四)状态和容错-使用状态
文章目录使用State`Keyed` DataStream使用`keyed state`State 生存时间 (TTL)清除过期状态完整快照清理增量清理RocksDB 压缩期间的清理算子 StateBroadcast State使用算子 State有状态的源函数使用State在本节中,您将了解 Flink 提供的用于编写有状态程序的 API。请查看 Stateful Stream Processing以了解有状态流处理背后的概念。Keyed DataStream如果要使用Keyed state,首先原创 2021-08-19 19:11:25 · 540 阅读 · 0 评论 -
flink DataStream API(三)事件时间-内置水印生成器
文章目录内置水印生成器单调递增的时间戳固定的延迟时间内置水印生成器如生成水印中所述,Flink提供了抽象,允许程序员分配他们自己的时间戳并发出他们自己的水印。更具体地说,可以通过实现WatermarkGenerator接口来实现。为了进一步简化此类任务的编程工作,Flink 附带了一些预先实现好的时间戳分配器。本节提供了它们的列表。除了开箱即用的功能外,它们的实现还可以作为自定义实现的示例。单调递增的时间戳周期性生成水印最简单和特殊的情况下是任务收到的时间戳是按照单调递增的顺序出现的。在这种情况下原创 2021-08-19 16:57:29 · 699 阅读 · 0 评论 -
flink DataStream API(三)事件时间-生成水印
文章目录生成水印水印策略介绍使用水印策略处理空闲源编写 `WatermarkGenerators`编写周期 WatermarkGenerator编写标点WatermarkGenerator水印策略和 Kafka 连接操作者如何处理水印已弃用的 AssignerWithPeriodicWatermarks 和 ssignerWithPunctuatedWatermarks生成水印在本节中,您将了解Flink为处理事件时间戳和水印提供的API。有关事件时间、处理时间和摄取时间的介绍,请参阅introduct原创 2021-08-19 15:33:13 · 761 阅读 · 0 评论 -
flink DataStream API(二)执行模型
文章目录执行模式(批处理/流处理)什么时候可以/应该使用 BATCH 执行模式?配置BATCH执行模式Execution Behavior(执行行为)任务调度和网络shuffle流执行模式批执行模式状态后端/状态Order of Processing(处理顺序)Event Time / Watermarks(时间时间 / 水印)Processing Time(处理时间)故障恢复重要注意事项检查点执行模式(批处理/流处理)DataStream API 支持不同的运行时执行模式,您可以根据用例的要求和作业的原创 2021-08-18 18:54:52 · 346 阅读 · 0 评论 -
flink DataStream API(一)概述
文章目录flink DataStream API编程指南什么是DataStreamFlink程序的分解示例程序数据源Data SinksIterations(迭代器)Execution Parameters (执行参数)Fault Tolerance(容错)Controlling Latency(控制延迟)flink DataStream API编程指南flink中的DataStream程序是对数据流进行转换(过滤、更新状态、定义窗口、聚合)的常规程序。数据流最初是由各种数据源提供的(文件、消息队列、套原创 2021-08-18 15:05:52 · 378 阅读 · 0 评论 -
flink 什么是fink(三)flink操作
flink操作flink是一个框架,用于对有界流和无界流进行有状态的计算。由于许多流应用程序被设计为以最少的停机时间连续运行,因此流处理器必须提供出色的故障恢复,以及在应用程序运行时监控和维护应用程。Apache Flink 非常关注流处理的操作。在这里,我们解释 Flink 的故障恢复机制,并展示其管理和监控正在运行的应用程序的功能。7乘24小时运行你的应用程序机器和进程故障在分布式系统中无处不见。像 Flink 这样的分布式流处理器必须能够在故障中恢复,以便能够 24/7 全天候运行流应用程序。原创 2021-08-17 16:49:34 · 329 阅读 · 0 评论 -
flink 什么是fink(二)flink应用程序
flink应用程序flink是一个框架,用于在无界和有界数据流上进行有状态计算。Flink在不同的抽象级别上提供了多个api,并为常见用例提供了专用的库。流应用程序的构建块流处理框架可以构建和执行的应用程序类型由该框架控制流、状态和时间的来定义。下面,我们将描述这些流处理应用程序的构建块,并解释 Flink 处理它们的方法Streams很显然,流是流处理的基础。但是流可以具有不同的特性,这些特性会影响流处理的处理方式。flink是一个通用的处理框架,可以处理任何类型的数据流。有界流和无界流:流原创 2021-08-17 16:05:06 · 626 阅读 · 0 评论 -
flink 什么是fink(一)flink架构
文章目录flink架构处理无界流和有界流随处部署应用程序以任何规模运行应用程序利用内存性能flink架构flink是一个框架和分布式处理引擎,它被用于对无界和有界数据流进行有状态计算。flink被设计成可以运行在所有常见的集群环境中,并以内存速度和任何规模执行计算。处理无界流和有界流任何种类的数据都是作为事件流产生的。数据可以作为无界流和有界流进行出来。无界流:无界流是一个又开始但是没有定义结束的数据流。无界流必须实时的处理,不可能等待所有数据到达后再处理,这是不可能的,因为无界流是无限的,任原创 2021-08-16 18:13:25 · 736 阅读 · 0 评论 -
Flink on yarn的HA
第一步配置flink-conf.yaml文件high-availability: ZOOKEEPERhigh-availability.cluster-id: eve_flink_1high-availability.storageDir: hdfs:///flink/checkpointshigh-availability.zookeeper.path.root: /flinkhigh...原创 2020-03-18 17:04:29 · 267 阅读 · 0 评论 -
Flink 广播变量造成基于Watermark的任务没有触发窗口计算
Flink 广播变量造成基于Watermark的任务没有触发窗口计算解决方法:解决此问题的方法就是在连接两个流之后的process方法后设置并行度为1,然后在加上watermark DataStream<Eve> broadcastDataStream = watermarkStream.connect(broadcast).process(new EveBroadcastPr...原创 2020-02-26 11:23:54 · 802 阅读 · 0 评论