Flink学习笔记(java版)
求学旅途
一名求学者
展开
-
大话Flink之十一Table API 和 Flink SQL
目录Table API 和 Flink SQL1Table API 和 Flink SQL 是什么2基本程序结构3 创建 TableEnvironment4表(Table)4.1 创建表4.2 输出到文件4.3更新模式4.4 输出到 Kafka4.5输出到 ES4.6 输出到 MySql5将 Table 转换成 DataStream5.1 将 Table 转换成 DataStream5.2 将 DataStream 转换成表5.3...原创 2020-12-24 00:14:17 · 510 阅读 · 0 评论 -
大话Flink之十-Flink 的状态一致性
Flink 的状态一致性1 状态一致性1.1 什么是状态一致性• 有状态的流处理,内部每个算子任务都可以有自己的状态。• 对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确。• 一条数据不应该丢失,也不应该重复计算。• 在遇到故障时可以恢复状态,恢复以后的重新计算,结果应该也是完全正确的。1.2状态一致性分类• AT-MOST-ONCE(最多一次)➢ 当任务故障时,最简单的做法是什么都不干,既不恢复丢失的状态,也不重播丢失的数据。At-most-o.原创 2020-12-22 20:03:14 · 459 阅读 · 0 评论 -
大话Flink之九- Flink的容错机制
Flink 的容错机制Flink 具体如何保证 exactly-once 呢? 它使用一种被称为"检查点"(checkpoint) 的特性,在出现故障时将系统重置回正确状态。下面通过简单的类比来解释检查点 的作用。假设你和两位朋友正在数项链上有多少颗珠子,如下图所示。你捏住珠子,边 数边拨,每拨过一颗珠子就给总数加一。你的朋友也这样数他们手中的珠子。当你 分神忘记数到哪里时,怎么办呢? 如果项链上有很多珠子,你显然不想从头再数一 遍,尤其是当三人的速度不一样却又试图合作的时候,更是如此(比如想记录前原创 2020-12-20 22:16:01 · 597 阅读 · 0 评论 -
大话Flink之八-ProcessFunction API(底层 API)
目录ProcessFunction API(底层 API)1KeyedProcessFunction2 TimerService 和 定时器(Timers)3 侧输出流(SideOutput)4 CoProcessFunctionProcessFunction API(底层 API)转换算子是无法访问事件的时间戳信息和水位线信息的。而这 在一些应用场景下,极为重要。例如 MapFunction 这样的 map 转换算子就无法访问时间戳或者当前事件的事件时间。基于此,Data.原创 2020-12-20 21:43:22 · 393 阅读 · 2 评论 -
大话Flink之七-Flink的状态管理
目录Flink 状态管理1Flink 中的状态2 算子状态(Operator State)2.1 算子状态数据结构3 键控状态(Keyed State)3.1键控状态数据结构3.2 键控状态的使用CaseFlink 状态管理1Flink 中的状态 由一个任务维护,并且用来计算某个结果的所有数据,都叫做这个任务的状态 可以认为状态就是一个本地变量,可以被任务的业务逻辑访问 Flink 会进行状态管理,包括状态一致性、故障处理以及高效存...原创 2020-12-19 21:28:24 · 223 阅读 · 1 评论 -
大话Flink之六-时间语义与Watermark
时间语义与Watermark1 Flink中的时间语义在 Flink 的流式处理中,会涉及到时间的不同概念,如下图所示:Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink 通过时间戳分配器访问事件时间戳。Ingestion Time:是数据进入 Flink 的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器相关,默认的时间属性就是 Processing Tim原创 2020-12-19 16:06:34 · 274 阅读 · 1 评论 -
大话Flink之五-Flink 中的 Window
Flink 中的 Window一、 窗口(window)1.1 window概述• 一般真实的流都是无界的,怎样处理无界的数据?• 可以把无限的数据流进行切分,得到有限的数据集进行处理 —— 也就是得到有界流• 窗口(window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析1.2 Window 类型时间窗口(Time Window) ➢ 滚动时间窗口 ➢ 滑动时间窗口 ➢ 会话窗口 计数窗口(.原创 2020-12-15 00:01:12 · 359 阅读 · 0 评论 -
大话Flink之四-Flink流处理API 行行代码带你深刻理解Flink流处理API!
流处理API一、Environment1.1getExecutionEnvironment创建一个执行环境,表示当前执行程序的上下文。 如果程序是独立调用的,则 此方法返回本地执行环境;如果从命令行客户端调用程序以提交到集群,则此方法 返回此集群的执行环境,也就是说,getExecutionEnvironment 会根据查询运行的方 式决定返回什么样的运行环境,是最常用的一种创建执行环境的方式。ExecutionEnvironment env = ExecutionEnvironme.原创 2020-12-13 22:07:54 · 1467 阅读 · 0 评论 -
大话Flink之三-Flink运行架构 有图有真相!
一、Flink 运行时的组件1、作业管理器(JobManager) • 控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的 JobManager 所控制执行。 JobManager 会先接收到要执行的应用程序,这个应用程序会包括:作业图 (JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、 库和其它资源的JAR包。 JobManager 会把JobGraph转换成一个物理层面的数据流图,这个图被叫做 “执行图”..原创 2020-12-11 00:30:43 · 482 阅读 · 1 评论 -
大话Flink之二-Flink部署 Standalone 模式 Yarn 模式 Kubernetes 部署
目录三、Flink 部署3.1Standalone 模式3.1.1 安装3.1.2 提交任务3.2 Yarn 模式3.2.1 Flink on Yarn3.2.2 Session Cluster3.2.2 Per Job Cluster3.3 Kubernetes 部署三、Flink 部署3.1Standalone 模式3.1.1 安装解压缩 flink-1.10.1-bin-scala_2.12.tgz,进入 conf 目录中。1)...原创 2020-12-10 22:13:16 · 612 阅读 · 0 评论 -
大话Flink之一Flink简介及快速上手
目录一、Flink简介1.1初识Flink1.2 Flink的重要特点1.2.1 事件驱动型(Event-driven)1.2.2 流与批的世界观1.2.3 分层 api二、快速上手2.1 搭建maven工程 FlinkTutorial2.2 批处理 wordcount2.3 流处理 wordcount一、Flink简介1.1初识Flink Flink 起源于 Stratosphere 项目,Stratosphere 是在 2010~201...原创 2020-12-10 21:51:25 · 622 阅读 · 2 评论