Flink
文章平均质量分 69
Flink
TRX1024
字节内推,可私信~
展开
-
Flink学习笔记
Flink-01-flink基本原理及应用场景分析Flink-02-flink技术架构及工作原理Flink-03-【入门程序】WordCount的流处理和批处理Flink-04-Flink自定义SourceFlink-05-DataStream API 之 TransformationsFlink-06-DataStream API 之 sink–Redis实现Flink-07-Bro...原创 2019-04-02 14:59:06 · 228 阅读 · 0 评论 -
Flink作业开发清单(5)——Time/时间
引用自Time 深度解析Flink对多种时间语义的支持,是它的优势之一;Flink既支持Processing Time,又支持Event Time:Processing Time 是来模拟我们真实世界的时间,其实就算是处理数据的节点本地时间也不一定就是完完全全的我们真实世界的时间,所以说它是用来模拟真实世界的时间。而 Event Time 是数据世界的时间,就是我们要处理的数据流世界里面的时间。关于他们的获取方式,Process Time 是通过直接去调用本地机器的时间,而 Event Tim原创 2022-03-25 17:56:29 · 2103 阅读 · 0 评论 -
Flink作业开发清单(4)——State/状态
建议阅读:Working with State 状态管理及容错机制如果当前的计算依赖于前面数据产生的结果,那就需要依赖状态;比如Word Count,需要通过状态来保存前面数据的统计结果。状态类型Flink Managed State分为两类,一是Keyed State,二是Operator State。用户经常用到的是Keyed State。Keyed State几种 Keyed State 的差异具体体现在:ValueState 存储单个值,比如 Wordcount,.原创 2022-03-25 17:49:42 · 464 阅读 · 0 评论 -
Flink作业开发清单(3)——Checkpoint
CheckpointCheckpoint功能可以保证作业失败重启或升级重启后,从上次"离开"的位置继续运行;比如Flink Kafka就是通过Checkpoint记录消费的Offset记录的;如果没有开启Checkpoint,那么每次重启作业可能会重复消费数据或者丢失数据(与配置相关);1.开启CheckpointStreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();Che原创 2022-03-25 17:42:22 · 1379 阅读 · 0 评论 -
Flink作业开发清单(2)——常用接口
开发Flink作业过程需要用到的一些常用接口:一、创建StreamExecutionEnvironmentStreamExecutionEnvironment主要用来配置一些运行参数以及创建Source。StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();配置开启Checkpoint(方便作业失败后自动恢复):env.enableCheckpointing(600原创 2022-03-25 16:30:08 · 1754 阅读 · 0 评论 -
Flink作业开发清单(1)——依赖管理
Flink相关的依赖:<!-- java --><dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>${flink.version}</version> <scope>provided</scope></dependency原创 2022-03-25 15:39:16 · 2028 阅读 · 0 评论 -
Flink提取EventTime并生成Watermark几种常用的方式
设置eventTime的方式分两种情况:升序数据提取时间戳 直接使用:.assignAscendingTimestamps(_.timestamp * 1000L) 乱序数据提取时间戳,有三种种构造方式(1.10版本只有前两种,flink版本1.11以后建议使用方式三) 方式一:AssignerWithPeriodicWatermarks 周期性的生成 watermark,默认周期是200ms,也可以通过setAutoWatermarkInterval设置周期时间 常用的实现类是:B原创 2022-02-26 22:36:35 · 2349 阅读 · 2 评论 -
FLink 中的Window及各种WindowFunction
streaming 流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限数据集是指一种不断增长的本质上无限的数据集,而 window 是一种切割无限数据为有限块进行处理的手段。Window 是无限数据流处理的核心,Window 将一个无限的 stream 拆分成有限大小的”buckets”桶,我们可以在这些桶上做计算操作。一、Window可以分为两类:CountWindow:按照指定的数据条数生成一个Window,与时间无关。 TimeWindow:按照时间生成Window。对于Ti原创 2022-02-26 21:44:07 · 2632 阅读 · 0 评论 -
Flink任务提交源码阅读(三):Job提交 run()
接着上面两篇文章:Flink1.9.0任务提交源码阅读(一):flink脚本Flink1.9.0任务提交源码阅读(二):入口类CliFrontend今天继续阅读Flink1.9.0任务提交源码的run()方法,这个方法是flink任务提交的核心逻辑。run()的执行逻辑代码:/** * 执行run操作 * * @param args 运行操作的命令行参数。 */pro...原创 2019-11-19 22:55:52 · 1884 阅读 · 0 评论 -
Flink任务提交源码阅读(二):入口类CliFrontend
接着上一章的内容,今天继续阅读Flink1.9.0任务提交源码的入口类:org.apache.flink.client.cli.CliFrontend上篇文章:Flink1.9.0任务提交源码阅读(一):flink脚本1.入口类逻辑从main()开始,直接上代码 /** Submits the job based on the arguments. */ public static ...原创 2019-11-19 22:27:23 · 4035 阅读 · 0 评论 -
Flink任务提交源码阅读(一):flink脚本
文章目录Flink版本&任务提交方式及示例继续:Flink1.9.0任务提交源码阅读(二):入口类CliFrontendFlink1.9.0任务提交源码阅读(三):Job提交--run()PS:在工作中有个需求:使用java API的方式提交flink job 到yarn上,有yarn负责部署集群运行任务,待任务运行完成后销毁集群,官方没有提供类似的java API怎么办,没办法只能看源...原创 2019-11-19 21:21:41 · 2007 阅读 · 0 评论 -
Flink-06-DataStream API 之 sink--Redis实现
记录Flink从Socket获取数据,经过数据处理后将数据落地到Redis。添加依赖包 <!-- https://mvnrepository.com/artifact/org.apache.bahir/flink-connector-redis --> <dependency> <groupId>org....原创 2019-04-01 17:55:38 · 581 阅读 · 0 评论 -
Flink-05-DataStream API 之 Transformations
Flink拥有很多算子最常用的有如下:算子描述map:输入一个元素,然后返回一个元素,中间可以做一些清洗转换等操作flatmap:输入一个元素,可以返回零个,一个或者多个元素filter:过滤函数,对传入的数据进行判断,符合条件的数据会被留下keyBy:根据指定的key进行分组,相同key的数据会进入同一个分区reduce:对数据进行聚合操作...原创 2019-04-01 11:44:57 · 220 阅读 · 0 评论 -
Flink-04-Flink自定义Source
1、实现并行度为1 的自定义Source实现SourceFunction接口–一定要指定数据类型package com.test.streaming.customSource; import org.apache.flink.streaming.api.functions.source.SourceFunction; /** * @Author:renxin.tang * @Des...原创 2019-04-01 10:27:38 · 1485 阅读 · 0 评论 -
Flink-03-【入门程序】WordCount的流处理和批处理
需求分析手工通过socket试试产生一些单词,使用flink实时接收数据,对指定时间窗口内(例如:2秒)的数据进行聚合统计,并且把时间窗口内计算的结果打印出来。实现步骤获得一个执行环境加载/创建初始化数据–连接socket获取输入的数据;指定操作数据的transaction算子指定把计算好的数据放在哪里调用execute()触发执行程序flink程序是延迟计算的,只有最后调用e...原创 2019-04-01 10:23:46 · 683 阅读 · 0 评论 -
Flink-02-flink技术架构及工作原理
Flink组件栈自下而上,分别针对每一层进行解释说明:Deployment该层主要涉及了Flink的部署模式,Flink支持多种部署模式:本地、集群(Standalone/YARN)、云(GCE/EC2)。Runtime层Runtime层提供了支持Flink计算的全部核心实现,比如:支持分布式Stream处理、JobGraph到ExecutionGraph的映射、调度等等,为上...原创 2019-04-01 10:09:29 · 513 阅读 · 0 评论 -
Flink-01-flink基本原理及应用场景分析
Apache Flink 是一个开源的分布式,高性能,高可用,准确的流处理框架。同时支持实时流处理和批处理。flink特性支持批处理和数据流程序处理优雅流畅的支持java和scala api同时支持高吞吐量和低延迟支持事件处理和无序处理通过SataStream API,基于DataFlow数据流模型在不同的时间语义(时间时间,处理时间)下支持灵活的窗口(时间,技术,会话,自定义触发器...原创 2019-04-01 10:02:30 · 336 阅读 · 0 评论