![](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 · 1563 阅读 · 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 · 346 阅读 · 0 评论 -
大数据学习之Flink——02Flink代码初体验
一. 第一个Flink流处理案例scala代码package com.hjfimport 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 · 383 阅读 · 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 · 313 阅读 · 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 · 479 阅读 · 0 评论 -
大数据学习之Flink——05Flink的Parallelism和Slot
本文借鉴了: http://www.54tianzhisheng.cn/2019/01/14/Flink-parallelism-slot/一. Parallelism(并行度)1. 什么是Parallelismparallelism 是并行的意思,在 Flink 里面代表每个任务的并行度,适当的提高并行度可以大大提高 job 的执行效率2. 设置Parallelism一个任务的并行度设置可以从 4 个层面指定:Operator Level(算子层面) Execution Environm.原创 2020-07-10 09:56:33 · 509 阅读 · 0 评论 -
大数据学习之Flink——06Data Source
Flink 做为一款流式计算框架,它可用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时的处理些实时数据流,实时的产生数据流结果,只要数据源源不断的过来,Flink 就能够一直计算下去,这个 Data Sources 就是数据的来源地。一. 基于集合1. fromCollection(Collection) -从 Collection 创建数据流。集合中的所有元素类型必须相同。1. 代码代码package com.hjf.dataSourceimport or.原创 2020-07-10 20:26:33 · 345 阅读 · 0 评论 -
大数据学习之Flink——07Sink
一. 基于HDFS代码package com.hjf.sinkimport com.hjf.dataSource.{CustomerSource, StationLog}import org.apache.flink.api.common.serialization.SimpleStringEncoderimport org.apache.flink.core.fs.Pathimport org.apache.flink.streaming.api.functions.sink.files原创 2020-07-11 00:11:35 · 623 阅读 · 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的课件侵权删一. 函数类常见的函数接口有:MapFunctionFlatMapFunctionReduceFunction2. 自定义函数类代码package com.hjf.functionimport java.text.SimpleDateFormatimport java.util.Dateimport com.hjf.dataSource.StationLogimport org.apache.flink.api.common..原创 2020-07-11 16:32:32 · 494 阅读 · 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 · 696 阅读 · 0 评论 -
大数据学习之Flink——12State管理与恢复
Flink 是一个默认就有状态的分析引擎,前面的 WordCount 案例可以做到单词的数量的 累加,其实是因为在内存中保证了每个单词的出现的次数,这些数据其实就是状态数据。但 是如果一个 Task 在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需 要重新计算。从容错和消息处理的语义(At -least-once 和 Exactly-once)上来说,Flink引入了 State 和 CheckPoint。State 一般指一个具体的 Task/Operator 的状态,State 数.原创 2020-07-12 13:20:54 · 480 阅读 · 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:事件被处理时当前系统的时间。一. 时间语义 Time1. 什么是时间语义数据从原创 2020-07-13 22:55:39 · 285 阅读 · 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 · 256 阅读 · 0 评论 -
大数据学习之Flink——16Flink 的复杂事件处理 CEP
本文参考尚学堂flink课件,侵权删复杂事件处理(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通 过分析事件之间的关系,建立不同的事件关系序列库,并利用过滤、关联、聚合等技术,最 终由简单事件产生高级事件,并通过模式规则的方式对重要信息进行跟踪和分析,从实时数据中发掘有价值的信息一. CEP相关概念1. 配置依赖在使用 FlinkCEP 组件之前,需要将 FlinkCEP 的依赖库引入项目工程中。<dependency> <groupId>org.原创 2020-07-15 14:39:45 · 626 阅读 · 1 评论