![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flink
Jiang锋时刻
这个作者很懒,什么都没留下…
展开
-
大数据学习之Flink——00Flink项目的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav原创 2020-07-15 14:46:46 · 1561 阅读 · 0 评论 -
大数据学习之Flink——01初识 Flink
一. Flink是什么? 1. Flink的定义 Apache Flink is a framework and distributed processing engine for stateful computations overunbounded and boundeddata streams. Flink has been designed to runinallcommon cluster environments, perform computations atin-memory speeda原创 2020-07-08 01:52:51 · 343 阅读 · 0 评论 -
大数据学习之Flink——02Flink代码初体验
一. 第一个Flink流处理案例 scala代码package com.hjf import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment /** * @author Jiang锋时刻 * @create 2020-07-09 9:51 * 基于流计算的WordCount案例 */ object StreamWordCount { def main(args: Array[String]): U原创 2020-07-09 22:17:15 · 382 阅读 · 0 评论 -
大数据学习之Flink——03Flink安装和部署
一. Flink集群安装和部署 上传并解压到指定目录 配置文件 修改 flink-conf.yaml 配置文件 # 指定jobmanager节点名称 jobmanager.rpc.address: node01 # 表示数每一个 TaskManager 上有 3 个 Slot。 taskmanager.numberOfTaskSlots: 3 编辑 slaves 配置文件 指定slaves节点的名称 修改masters配置文件 指定master节点名称 分发原创 2020-07-09 22:43:37 · 312 阅读 · 0 评论 -
大数据学习之Flink——04Flink任务提交
声明: 由于我集群搭建的问题, 并不能通过yarn提交flink任务, 所以第三部分的所有实现, 全是复制粘贴的尚学堂的教案. 如果之后集群弄好了, 会重新修改这部分的内容 侵权删 一. Web UI提交 任务提交 查看是否接收到数据 查看是哪个节点执行的 访问执行的节点 查看结果 二. 命令提交 执行命令 ./flink run -d -c com.hjf.ScalaStreamWordCount /root/Demo-1.0-SNAPSHOT.jar 其中.原创 2020-07-10 00:43:44 · 477 阅读 · 0 评论 -
大数据学习之Flink——05Flink的Parallelism和Slot
本文借鉴了: http://www.54tianzhisheng.cn/2019/01/14/Flink-parallelism-slot/ 一. Parallelism(并行度) 1. 什么是Parallelism parallelism 是并行的意思,在 Flink 里面代表每个任务的并行度,适当的提高并行度可以大大提高 job 的执行效率 2. 设置Parallelism 一个任务的并行度设置可以从 4 个层面指定: Operator Level(算子层面) Execution Environm.原创 2020-07-10 09:56:33 · 505 阅读 · 0 评论 -
大数据学习之Flink——06Data Source
Flink 做为一款流式计算框架,它可用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时的处理些实时数据流,实时的产生数据流结果,只要数据源源不断的过来,Flink 就能够一直计算下去,这个 Data Sources 就是数据的来源地。 一. 基于集合 1. fromCollection(Collection) - 从 Collection 创建数据流。集合中的所有元素类型必须相同。 1. 代码 代码package com.hjf.dataSource import or.原创 2020-07-10 20:26:33 · 344 阅读 · 0 评论 -
大数据学习之Flink——07Sink
一. 基于HDFS 代码 package com.hjf.sink import com.hjf.dataSource.{CustomerSource, StationLog} import org.apache.flink.api.common.serialization.SimpleStringEncoder import org.apache.flink.core.fs.Path import org.apache.flink.streaming.api.functions.sink.files原创 2020-07-11 00:11:35 · 622 阅读 · 0 评论 -
大数据学习之Flink——08Transformation
从一个或多个 DataStream 生成新的 DataStream 的过程被称为 Transformation 操作。 1. Map [DataStream->DataStream] 调用用户定义的 MapFunction 对 DataStream[T] 数据进行处理,形成新的 Data-Stream[T],其中数据格式可能会发生变化,常用作对数据集内数据的清洗和转换。例如将输入数据集中的每个数值全部加 1 处理,并且将数据输出到下游数据集。 2. FlatMap [DataStream-&.原创 2020-07-11 10:53:32 · 137 阅读 · 0 评论 -
大数据学习之Flink——09函数类和富函数类
本文参考尚学堂Flink的课件 侵权删 一. 函数类 常见的函数接口有: MapFunction FlatMapFunction ReduceFunction 2. 自定义函数类 代码 package com.hjf.function import java.text.SimpleDateFormat import java.util.Date import com.hjf.dataSource.StationLog import org.apache.flink.api.common..原创 2020-07-11 16:32:32 · 491 阅读 · 0 评论 -
大数据学习之Flink——10底层 ProcessFunctionAPI
ProcessFunction 是一个低层次的流处理操作,允许返回所有 Stream 的基础构建模块: 访问 Event 本身数据(比如:Event 的时间,Event 的当前 Key 等) 管理状态 State(仅在 Keyed Stream 中) 管理定时器 Timer(包括:注册定时器,删除定时器等) 总而言之,ProcessFunction 是 Flink 最底层的 API,也是功能最强大的。 案例: 问题 监控每一个手机,如果在 5 秒内呼叫它的通话都是失败的,发出警告信息。 代码.原创 2020-07-11 20:04:23 · 176 阅读 · 0 评论 -
大数据学习之Flink——11侧输出流 Side Output
1. 为什么需要Side Stream 在处理一个数据源时,往往需要 将该源中的不同类型的数据做分割处理,如果使用 filter 算子对数据源进行筛选分割的 话,势必会造成数据流的多次复制,造成不必要的性能浪费;flink 中的侧输出就是将数据 流进行分割,而不对流进行复制的一种分流机制。flink 的侧输出的另一个作用就是对延时迟到的数据进行处理,这样就可以不必丢弃迟到的数据 2. 如何使用Side Stream 要使用 Side Output 的话,首先需要做的是定义一个 OutputTag 来标识原创 2020-07-11 21:14:50 · 693 阅读 · 0 评论 -
大数据学习之Flink——12State管理与恢复
Flink 是一个默认就有状态的分析引擎,前面的 WordCount 案例可以做到单词的数量的 累加,其实是因为在内存中保证了每个单词的出现的次数,这些数据其实就是状态数据。但 是如果一个 Task 在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需 要重新计算。从容错和消息处理的语义(At -least-once 和 Exactly-once)上来说,Flink引入了 State 和 CheckPoint。 State 一般指一个具体的 Task/Operator 的状态,State 数.原创 2020-07-12 13:20:54 · 477 阅读 · 1 评论 -
大数据学习之Flink——13Window详解
Windows 计算是流式计算中非常常用的数据计算方式之一, 通过按照固定时间或长度将数据流切分成不同的窗口, 然后对数据进行相应的聚合运算, 从而得到一定时间范围内的统计结果。 一. Window分类 1. Global Window 和 Keyed Window 在运用窗口计算时,Flink根据上游数据集是否为KeyedStream类型,对应的Windows 也 会有所不同。 Keyed Window: 上游数据集如果是KeyedStream类型, 则调用 DataStream API的 wind.原创 2020-07-13 13:10:04 · 277 阅读 · 0 评论 -
大数据学习之Flink——14Time详解
对于流式数据处理,最大的特点是数据上具有时间的属性特征,Flimk 根据时间产生的位置不同,将时间区分为三种时间语义,分别为事件生成时间(Event Time)、事件接入时 间(Ingestion Time)和事件处理时间(Processing Time)。 Event Time:事件产生的时间,它通常由事件中的时间戳描述。 Ingestion Time:事件进入 Flink 的时间。 Processing Time:事件被处理时当前系统的时间。 一. 时间语义 Time 1. 什么是时间语义 数据从原创 2020-07-13 22:55:39 · 283 阅读 · 0 评论 -
大数据学习之Flink——15TableAPI 和 Flink SQL
Table API 以及 SQL 能够统一处理批量和实时计算业务, 无须切换修改任何应用代码就能够基于同一套 API 编写流式应用和批量应用, 从而达到真正意义的批流统一 一. 开发环境构建 在使用 Table API 和 SQL 开发 Flink 应用之前, 通过添加 Maven 的依赖配置到项目中, 在本地工程中引入相应的依赖库, 库中包含了 TableAPI 和 SQL 接口。 <dependency> <groupId>org.apache.flink<.原创 2020-07-15 09:51:16 · 255 阅读 · 0 评论 -
大数据学习之Flink——16Flink 的复杂事件处理 CEP
本文参考尚学堂flink课件, 侵权删 复杂事件处理(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通 过分析事件之间的关系,建立不同的事件关系序列库,并利用过滤、关联、聚合等技术,最 终由简单事件产生高级事件,并通过模式规则的方式对重要信息进行跟踪和分析,从实时数据中发掘有价值的信息 一. CEP相关概念 1. 配置依赖 在使用 FlinkCEP 组件之前,需要将 FlinkCEP 的依赖库引入项目工程中。 <dependency> <groupId>org.原创 2020-07-15 14:39:45 · 623 阅读 · 1 评论