
Flink1.12从入门到精通笔记
【狂野大数据】Flink1.12从入门到精通#2021#流批一体#黑马程序员#大数据 笔记
Eistert
文章大部分都是前人总结的知识点,我只是一个搬运工……
展开
-
32-Spark VS Flink
Spark VS Flink应用场景Spark:主要用作离线批处理 , 对延迟要求不高的实时处理(微批) ,DataFrame和DataSetAPI 也支持 “流批一体”Flink:主要用作实时处理 ,注意Flink1.12开始支持真正的流批一体APISpark : RDD(不推荐) /DSteam(不推荐)/DataFrame和DataSetFlink : DataSet(1.12软弃用) 和 DataStream /Table&SQL(快速发展中)核心角色/流程原理Spark转载 2021-07-06 10:13:33 · 337 阅读 · 0 评论 -
31-Flink内存管理
Flink内存管理转载 2021-07-06 10:08:03 · 81 阅读 · 0 评论 -
30-Flink性能优化
Flink性能优化1.复用对象stream .apply(new WindowFunction<WikipediaEditEvent, Tuple2<String, Long>, String, TimeWindow>() { @Override public void apply(String userName, TimeWindow timeWindow, Iterable<WikipediaEditEvent> itera转载 2021-07-06 10:06:50 · 364 阅读 · 0 评论 -
29-Flink监控
Flink监控https://blog.lovedata.net/8156c1e1.html什么是MetricsMetrics分类代码package cn.itcast.metrics;import org.apache.flink.api.common.RuntimeExecutionMode;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.转载 2021-07-06 10:04:53 · 304 阅读 · 0 评论 -
28-ScalaFlink
ScalaFlink介绍Flink源码主要是Java语言编写的, 开发中首选Java开发Flink如果考虑到编码效率和简洁性可以考虑使用Scala注意:Spark源码主要是Scala编写的, 开发中首选Scala开发Spark如果考虑到编码的规范性,可以考虑使用Java环境0.导入依赖 <!--依赖Scala语言--> <dependency> <groupId>org.scala-lang</groupId转载 2021-07-06 10:00:39 · 793 阅读 · 0 评论 -
27-PyFlink
PyFlink介绍环境准备python -m pip install apache-flink需要下载很多其他的依赖–网络环境好的话需要2小时左右入门案例from pyflink.common.serialization import SimpleStringEncoderfrom pyflink.common.typeinfo import Typesfrom pyflink.datastream import StreamExecutionEnvironmentfrom pyf转载 2021-07-06 09:51:31 · 244 阅读 · 0 评论 -
26-Flink-高级特性-新特性-FlinkSQL整合Hive
Flink-高级特性-新特性-FlinkSQL整合Hive1.介绍版本https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/connectors/hive/添加依赖和jar包和配置<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-转载 2021-07-01 10:32:35 · 309 阅读 · 0 评论 -
25-Flink-高级特性-新特性-Flie Sink
Flink-高级特性-新特性-Flie Sinkpackage cn.itcast.feature;import org.apache.commons.lang3.SystemUtils;import org.apache.flink.api.common.RuntimeExecutionMode;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.fu转载 2021-07-01 10:29:18 · 209 阅读 · 0 评论 -
24-Flink-高级特性-新特性-Streaming Flie Sink
Flink-高级特性-新特性-Streaming Flie Sink介绍https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/connectors/streamfile_sink.htmlhttps://blog.youkuaiyun.com/u013220482/article/details/100901471代码演示package cn.itcast.feature;import org.apache.commons.l转载 2021-07-01 10:27:05 · 171 阅读 · 0 评论 -
23-Flink-高级特性-新特性-异步IO-了解
Flink-高级特性-新特性-异步IO-了解原理APIhttps://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/stream/operators/asyncio.html注意: 如果要使用异步IO, 对应Client有一定要求:1.该Client要支持发送异步请求,如vertx2.如果Client不支持可以使用线程池来模拟异步请求代码演示DROP TABLE IF EXISTS `t_category`;CREAT转载 2021-07-01 10:24:21 · 147 阅读 · 0 评论 -
22-Flink-高级特性-新特性-End-to-End Exactly-Once
Flink-高级特性-新特性-End-to-End Exactly-Once数据一致性语义分类数据一致性语义详解注意:Exactly-Once 更准确的理解 应该是:数据只会被正确的处理一次!而不是说数据只被处理一次,有可能多次,但只有最后一次是正确的,成功的!End-To-End Exactly-Once表示从Source 到 Transformation 到 Sink 都能够保证Exactly-Once !如何实现局部的Exactly-Once可以使用:1.去重转载 2021-07-01 10:21:15 · 190 阅读 · 0 评论 -
21-Flink-高级特性-新特性-双流Join
Flink-高级特性-新特性-双流Joinjoin的分类APIhttps://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/stream/operators/joining.html代码演示-WindowJoinpackage cn.itcast.feature;import com.alibaba.fastjson.JSON;import lombok.Data;import org.apache.f转载 2021-07-01 10:11:03 · 160 阅读 · 0 评论 -
20-BroadcastState-动态更新规则配置-看懂
BroadcastState-动态更新规则配置-看懂需求有一个事件流–用户的行为日志,里面有用户id,但是没有用户的详细信息有一个配置流/规则流–用户信息流–里面有用户的详细的信息现在要将事件流和配置流进行关联, 得出日志中用户的详细信息,如 (用户id,详细信息, 操作)那么我们可以将配置流/规则流–用户信息流 作为状态进行广播 (因为配置流/规则流–用户信息流较小)数据/** * 随机事件流--数据量较大 * 用户id,时间,类型,产品id * <转载 2021-06-30 17:25:44 · 216 阅读 · 0 评论 -
19-Flink-练习-订单自动好评-掌握
Flink-练习-订单自动好评-掌握需求数据/** * 自定义source实时产生订单数据Tuple3<用户id,订单id, 订单生成时间> */ public static class MySource implements SourceFunction<Tuple3<String, String, Long>> { private boolean flag = true; @Override转载 2021-06-30 17:23:11 · 210 阅读 · 0 评论 -
18-Flink-练习-双十一实时交易大屏-掌握
Flink-练习-双十一实时交易大屏-掌握需求数据/** * 自定义数据源实时产生订单数据Tuple2<分类, 金额> */ public static class MySource implements SourceFunction<Tuple2<String, Double>> { private boolean flag = true; private String[] categorys = {"转载 2021-06-30 17:20:17 · 677 阅读 · 0 评论 -
17-Flink Table&SQL
Flink Table&SQL为什么需要Table&SQL发展历史API依赖https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/程序结构https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/common.html创建环境https://ci.apache.org/projec转载 2021-06-30 17:13:34 · 229 阅读 · 0 评论 -
16-容错机制
容错机制CheckpointCheckpoint和StateCheckpoint执行流程0.Flink的JobManager创建CheckpointCoordinator1.Coordinator向所有的SourceOperator发送Barrier栅栏(理解为执行Checkpoint的信号)2.SourceOperator接收到Barrier之后,暂停当前的操作(暂停的时间很短,因为后续的写快照是异步的),并制作State快照, 然后将自己的快照保存到指定的介质中(如HDFS), 一切 o转载 2021-06-30 16:57:37 · 204 阅读 · 0 评论 -
15-State-理解原理即可
State-理解原理即可Flink中状态的自动管理之前写的Flink代码中其实已经做好了状态自动管理,如发送hello ,得出(hello,1)再发送hello ,得出(hello,2)说明Flink已经自动的将当前数据和历史状态/历史结果进行了聚合,做到了状态的自动管理在实际开发中绝大多数情况下,我们直接使用自动管理即可一些特殊情况才会使用手动的状态管理!—后面项目中会使用!所以这里得先学习state状态如何手动管理!package cn.itcast.source;import o转载 2021-06-29 14:16:36 · 364 阅读 · 0 评论 -
14-Time/Watermarker
Time/Watermarker时间分类EventTime的重要性和Watermarker的引入Watermarker详解总结:1.Watermarker本质是时间戳2.Watermarker = 当前进来的数据最大的事件时间 - 最大允许的数据延迟时间或乱序时间3.Watermarker 可以通过改变窗口触发计算时机来解决一定程度上的数据乱序或延迟达到的问题4.Watermarker >= 窗口结束时间 时触发窗口计算5.当前的最大的事件时间 - 最大允许的数据延迟时转载 2021-06-29 14:06:43 · 143 阅读 · 0 评论 -
13-Flink四大基石 && Window
窗口的分类基于时间的滑动窗口(掌握)基于时间的滚动窗口(掌握)基于数量的滑动窗口(了解)基于数量的滚动窗口(了解)API代码演示-基于时间的滚动和滑动-掌握package cn.itcast.window;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.apache.flink.api.common.RuntimeExecuti.转载 2021-06-29 11:39:14 · 223 阅读 · 0 评论 -
12-Connectors
ConnectorsJDBCpackage cn.itcast.connectors;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.apache.flink.api.common.RuntimeExecutionMode;import org.apache.flink.connector.jdbc.JdbcConnectionOptions;imp转载 2021-06-29 10:51:05 · 148 阅读 · 0 评论 -
11-Sink
Sink基于控制台和文件package cn.itcast.sink;import org.apache.flink.api.common.RuntimeExecutionMode;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;/** * Author itcas转载 2021-06-29 10:44:30 · 171 阅读 · 0 评论 -
10-Transformation
Transformation基本操作map/flatMap/filter/keyBy/sum/reduce…和之前学习的Scala/Spark里面的一样的意思需求对流数据中的单词进行统计,排除敏感词TMD(Theater Missile Defense 战区导弹防御)package cn.itcast.transformation;import org.apache.flink.api.common.RuntimeExecutionMode;import org.apache.flink.转载 2021-06-29 10:39:28 · 199 阅读 · 0 评论 -
09-Source
Source基于集合package cn.itcast.source;import org.apache.flink.api.common.RuntimeExecutionMode;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import java.util.A转载 2021-06-29 10:23:52 · 122 阅读 · 0 评论 -
08-流处理说明
流处理说明有边界的流bounded stream:批数据无边界的流unbounded stream:真正的流数据转载 2021-06-29 10:11:22 · 184 阅读 · 0 评论 -
07-Flink原理初探-慢慢理解/消化
Flink原理初探-慢慢理解/消化角色分工执行流程DataFlowhttps://ci.apache.org/projects/flink/flink-docs-release-1.12/concepts/glossary.htmlDataFlow、Operator、Partition、Parallelism、SubTaskOperatorChain和TaskTaskSlot和TaskSlotSharing执行流程图生成...转载 2021-06-28 18:55:44 · 121 阅读 · 0 评论 -
06-Flink入门案例-DataStream-匿名内部类-处理流 && DataStream-Lambda
代码实现-DataStream-匿名内部类-处理流package cn.itcast.hello;import org.apache.flink.api.common.RuntimeExecutionMode;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api转载 2021-06-28 18:46:05 · 263 阅读 · 0 评论 -
05-Flink入门案例-代码实现-DataSet-了解 && DataStream-匿名内部类-处理批
代码实现-DataSet-了解package cn.itcast.hello;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.java.DataSet;import org.apache.flink.api.java.ExecutionEnvironme转载 2021-06-28 18:36:58 · 169 阅读 · 0 评论 -
04-Flink入门案例-准备环境
Flink入门案例前置说明注意:入门案例使用DataSet后续就不再使用了,而是使用流批一体的DataStreamhttps://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/batch/准备环境<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x转载 2021-06-28 18:25:01 · 179 阅读 · 0 评论 -
03-Flink-On-Yarn-开发使用
Flink-On-Yarn-开发使用原理两种模式Session会话模式Job分离模式操作1.关闭yarn的内存检查vim /export/server/hadoop/etc/hadoop/yarn-site.xml <!-- 关闭yarn内存检查 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value&g转载 2021-06-28 18:11:18 · 269 阅读 · 0 评论 -
02-Flink安装部署
Flink安装部署local本地模式-了解原理操作1.下载安装包https://archive.apache.org/dist/flink/2.上传flink-1.12.0-bin-scala_2.12.tgz到node1的指定目录3.解压tar -zxvf flink-1.12.0-bin-scala_2.12.tgz 4.如果出现权限问题,需要修改权限chown -R root:root /export/server/flink-1.12.05.改名或创建软链接mv fl转载 2021-06-28 17:35:21 · 240 阅读 · 0 评论 -
01-Flink介绍
Flink介绍发展历史官方介绍组件栈应用场景所有的流式计算转载 2021-06-28 17:10:07 · 121 阅读 · 0 评论