Flink
文章平均质量分 66
菜鸟也学大数据
这个作者很懒,什么都没留下…
展开
-
Flink创建测试数据流的几种方式
flink自定义测试数据流原创 2023-03-27 11:26:23 · 656 阅读 · 1 评论 -
Flink复杂事件处理(CEP)示例
示例实现package com.lagou.gongkaike;import com.lagou.mycep.PayBean;import org.apache.flink.api.common.eventtime.*;import org.apache.flink.api.java.functions.KeySelector;import org.apache.flink.cep.CEP;import org.apache.flink.cep.PatternSelectFunction;i原创 2021-04-18 19:40:52 · 356 阅读 · 0 评论 -
Apache Flink介绍、架构、原理以及实现
文章目录一 Flink简介1.1 什么是flink1.2 flink的特点1.3 编程API二 Flink架构2.1 架构图2.2 运行组件2.3 关键词含义三 Flink原理3.1 任务3.2 任务提交流程3.3 任务提交流程(YARN版)3.4 任务执行图3.5 任务链四 Flink和其他框架对比五 Flink安装部署六 Flink第一个示例七 Flink Source数据源八 Flink Transform算子七 Flink Sink输出端九 Flink window窗口十 时间语义与WaterMar原创 2021-01-13 00:15:16 · 4055 阅读 · 1 评论 -
Flink toAppendStream与toRetractStream的区别
前言通常我们在需要输出Table表数据时需要转换成DataStream流进行输出,然后转换流有两种模式toAppendStream追加模式、toRetractStream更新模式toAppendStream:追加模式接收端口数据,测试追加模式代码示例import org.apache.flink.streaming.api.scala._import org.apache.flink.table.api.{EnvironmentSettings, Table}import org.ap原创 2021-01-11 09:54:09 · 5498 阅读 · 0 评论 -
Flink Table连接Kafka出现问题
报错信息SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.Exception in thread "main" org.apache.fli原创 2021-01-08 12:23:23 · 1727 阅读 · 2 评论 -
四万字!掌握Flink Table一篇就够了
学习工具与软件版本:开发软件IDEA、Flink1.10.2、Kafka2.0.0、Scala2.11创建Maven项目修改Pom.xml <!- 根据自己使用的版本修改对应的版本号 -> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <versio.原创 2021-01-08 12:07:01 · 1703 阅读 · 1 评论 -
Flink端到端状态一致性
状态一致性级别AT-MOST-ONCE (最多一次):当任务故障时,最简单的做法是什么都不干,既不恢复丢失的状态,也不重播丢失的数据。At-most-once 语义的含义是最多处理一次事件。AT-LEAST-ONCE (至少一次):在大多数的真实应用场景,我们希望不丢失事件。这种类型的保障称为at-least-once,意思是所有的事件都得到了处理,而一些事件还可能被处理多次。EXACTLY-ONCE (精确一次):恰好处理一次是最严格的保证,也是最难实现的。恰好处理一次语义不仅仅意原创 2021-01-07 11:51:18 · 1203 阅读 · 0 评论 -
Flink Checkpoints检查点
Checkpoints概述Flink 故障恢复机制的核心, 就是应用状态的一致性检查点有状态流应用的一 致检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照) ;这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候原理演示Checkpoints出现故障开始恢复遇到故障之后,第一步就是重启应用第二步是从checkpoint中读取状态,将状态重置从检查点重新启动应用程序后,其内部状态与检查点完成时的状态完全相同第三步:开始消费并处理检查点到发生原创 2021-01-06 10:20:14 · 728 阅读 · 0 评论 -
Flink状态后端
什么是状态后端?每传入一条数据,有状态的算子任务都会读取和更新状态由于有效的状态访问对于处理数据的低延迟至关重要,因此每个并行任务都会在本地维护其状态,以确保快速的状态访问状态的存储、访问以及维护,由一个可插入的组件决定,这个组件就叫做状态后端(state backend)状态后端主要负责两件事:本地的状态管理,以及将检查点(checkpoint)状态写入远程存储状态后端的存储模式MemoryStateBackend内存级的状态后端,会将键控状态作为内存中的对象进行管理,将它们存储在Ta原创 2021-01-06 09:24:49 · 751 阅读 · 0 评论 -
Flink ProcessFunction详解
前言我们之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的。而这.在一.些应用场景下,极为重要。例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。基于此,DataStreamAPI提供了一系列的Low-Level转换算子。可以访问时间戳、watermark以及注册定时事件。还可以输出特定的-一些事件,例如超时事件等。ProcessFunction用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的window函数和转换算子无法实现)。例如,Flink原创 2021-01-05 00:29:13 · 3159 阅读 · 2 评论 -
认识Flink的状态管理
状态概念由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态可以认为状态就是一个本地变量,可以被任务的业务逻辑访问Flink会进行状态管理,包括状态一致性、 故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑状态的分类在Flink中,状态始终与特定算子相关联为了使运行时的Flink了解算子的状态,算子需要预先注册其状态总的说来,有两种类型的状态:算子状态(Operator State):算子状态的作用范围限定为算子任务键控状态(Keyed State)原创 2021-01-03 21:38:49 · 261 阅读 · 0 评论 -
Flink watermark自定义生成机制
周期性生成Watermarkimport Source.WaterSensorimport org.apache.flink.streaming.api.TimeCharacteristicimport org.apache.flink.streaming.api.functions.AssignerWithPeriodicWatermarksimport org.apache.flink.streaming.api.scala._import org.apache.flink.streaming原创 2021-01-02 12:52:38 · 752 阅读 · 0 评论 -
Flink时间语义与watermark的原理
时间语义我们可以直接在代码中,对执行环境调用setStreamTimeCharacteristic方法,设置流的时间特性 val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment //EventTime 事件发生事件 //IngestionTime 事件进入Flink事件 //ProcessingTime 事件处理事件 //给env创建的每一个Str原创 2021-01-01 13:28:22 · 221 阅读 · 0 评论 -
Flink window详解
什么是窗口?一般真实的流都是无界的,怎样处理无界的数据?可以把无限的数据流进行切分,得到有限的数据集进行处理一也就是得到有界流窗口(window) 就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket) 中进行分析窗口类型时间窗口(Time Window)滚动时间窗C]滑动时间窗口会话窗口计数窗口(Count Window)滚动计数窗口滑动计数窗口滚动窗口将数据依据固定的窗度长度对数据进行切分时间对齐,窗口长度固定,没有重叠滑动窗原创 2020-12-31 12:45:36 · 591 阅读 · 0 评论 -
Flink自定义Sink
示例:Flink写入MySQL创建Maven项目修改pom.xm文件 <!- 添加以下依赖,根据自己使用的版本进行修改 -> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <version>1.7.2</version> &原创 2020-12-31 10:45:13 · 1107 阅读 · 0 评论 -
Flink Transform算子详解
原文参考地址:https://www.cnblogs.com/javazhiyin/p/13597319.htmlMap映射:将数据流中的数据进行转换, 形成新的数据流,消费一个元素并产出一个元素参数:Scala匿名函数或MapFunction返回:DataStreamimport org.apache.flink.streaming.api.scala._object Transfrom_map { def main(args: Array[String]): Unit = {.原创 2020-12-30 00:15:55 · 575 阅读 · 0 评论 -
Flink Source(数据源)
以内存数据作为数据源env.fromCollection(List(1, 2, 3, 4, 5, 6))以文件作为数据源env.readTextFile("路径/文件名.格式")以端口作为数据源env.socketTextStream("192.168.**.**",端口号)以Kafka作为数据源 val prop = new Properties() prop.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,"192.16原创 2020-12-29 23:43:05 · 983 阅读 · 0 评论 -
Apache Flink框架以及运行原理
Apache Flink架构JobManger(作业管理器)TaskManger(任务管理器)ResourceMager(资源管理器)Dispacher(分发器)JobManager控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的JobManager所控制执行。JobManager会先接收到要执行的应用程序,这个应用程序会包括:作业图(JobGraph)、 逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其它资源的JAR包。JobM原创 2020-12-29 17:36:05 · 423 阅读 · 0 评论 -
Flink输出数据至Kafka
创建Maven项目配置Pom.xml文件 <!- 根据自己使用的版本进行修改版本号 -> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <version>1.7.2</version> </dependency>原创 2020-12-29 17:24:29 · 1321 阅读 · 0 评论 -
Flink自定义数据源Source
实现自定义数据源import org.apache.flink.streaming.api.functions.source.SourceFunctionimport org.apache.flink.streaming.api.scala._import scala.util.Random//自定义数据类型case class WaterSensor(id:String,ts:Long,vc:Double)//创建类并继承SourceFunction指定类型class MySource e原创 2020-12-28 17:46:32 · 786 阅读 · 0 评论 -
Flink读取Kafka中的数据
创建Maven项目配置pom.xml文件 <!- 根据自己使用的版本情况进行修改版本号 -> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <version>1.7.2</version> </dependency>原创 2020-12-28 17:12:36 · 1389 阅读 · 0 评论 -
学习上传Flink Job任务:实现WordCount
首先实现Job任务的Jar包使用Idea创建maven项目修改pom.xml文件:添加依赖 <!- 根据自己使用的scala与flink的版本修改版本号 -> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <version>1.7.2</原创 2020-12-28 12:24:44 · 352 阅读 · 4 评论 -
学习Apache Flink的第一个示例
示例使用Idea创建Maven项目添加Flink依赖 <!- 根据自己的需求添加依赖这里仅需要以下两个,修改对应的scala版本,以及所想用的flink版本-> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <version>1.7.2<原创 2020-12-27 21:54:15 · 164 阅读 · 0 评论