
flink
文章平均质量分 92
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
赵广陆
优快云认证博客专家、优快云的Java领域优质创作者、全网30w+粉丝、超300w访问量、专注于大学生项目实战开发、讲解和答疑辅导、以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理,对于专业性数据证明一切!
展开
-
大数据Flink大屏实时计算深度剖析
目录1. 实时计算应用场景1.1 智能推荐1.2 实时数仓1.3 大数据分析应用2 Flink快速入门3. Flink接入体系3.1 Flink Connectors3.2 JDBC(读/写)3.3 HDFS(读/写)3.4 ES(写)3.5 KAFKA(读/写)3.6 自定义序列化(Protobuf)4 Flink大屏数据实战4.1 双十一大屏数据4.2 Canal同步服务安装4.3 热销商品统计4.4 区域分类统计4.5 订单状态监控统计(CEP)4.6 商品UV统计4.7 布隆过滤器1. 实时计算原创 2022-05-19 16:53:29 · 4675 阅读 · 0 评论 -
大数据Flink VS Spark
目录1 Flink VS Spark运行角色2 生态3 运行模型4 编程模型对比5 任务调度原理6 时间机制对比7 kafka 动态分区检测8 容错机制及处理语义9 Back pressure背压/反压1 Flink VS Spark运行角色⚫ Spark Streaming 运行时的角色(standalone 模式)主要有:✓ Master:主要负责整体集群资源的管理和应用程序调度;✓ Worker:负责单个节点的资源管理,driver 和 executor 的启动等;✓ Driver:用户入原创 2021-09-13 23:11:59 · 1498 阅读 · 0 评论 -
大数据Flink内存管理
目录1 内存管理问题引入2 内存划分3 堆外内存4 序列化与反序列化5 操纵二进制数据6 总结-面试1 内存管理问题引入Flink本身基本是以Java语言完成的,理论上说,直接使用JVM的虚拟机的内存管理就应该更简单方便,但Flink还是单独抽象出了自己的内存管理因为Flink是为大数据而产生的,而大数据使用会消耗大量的内存,而JVM的内存管理管理设计是兼顾平衡的,不可能单独为了大数据而修改,这对于Flink来说,非常的不灵活,而且频繁GC会导致长时间的机器暂停应用,这对于大数据的应用场景来说也是无法原创 2021-09-13 23:08:27 · 524 阅读 · 0 评论 -
大数据Flink性能优化
目录1 History Server性能优化2 序列化3 复用对象4 数据倾斜1 History Server性能优化flink的HistoryServer主要是用来存储和查看任务的历史记录,具体信息可以看官网https://ci.apache.org/projects/flink/flink-docs-release-1.12/deployment/advanced/historyserver.html# Directory to upload completed jobs to. Add t原创 2021-09-13 23:06:36 · 853 阅读 · 0 评论 -
大数据Flink Metrics监控
目录1 什么是 Metrics?1.1 Metrics介绍1.2 Metric Types2 WebUI监控3 REST API监控3.1 http请求获取监控数据3.2 开发者模式获取指标url3.3 代码中Flink任务运行状态1 什么是 Metrics?https://ci.apache.org/projects/flink/flink-docs-release-1.12/ops/metrics.html1.1 Metrics介绍由于集群运行后很难发现内部的实际状况,跑得慢或快,是否异常等,原创 2021-09-13 23:04:44 · 902 阅读 · 0 评论 -
大数据FlinkSQL整合Hive
目录1 介绍2 集成Hive的基本方式3 准备工作4 SQL CLI5 代码演示1 介绍https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/connectors/hive/https://zhuanlan.zhihu.com/p/338506408使用Hive构建数据仓库已经成为了比较普遍的一种解决方案。目前,一些比较常见的大数据处理引擎,都无一例外兼容Hive。Flink从1.9开始支持集成Hive,不过原创 2021-09-13 23:01:49 · 980 阅读 · 0 评论 -
大数据Flink Streaming File Sink与File Sink
目录1 介绍1.1 场景描述1.2 Bucket和SubTask、PartFile2 案例演示3 File Sink介绍3.1 案例演示1 介绍https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/connectors/streamfile_sink.htmlhttps://blog.youkuaiyun.com/u013220482/article/details/1009014711.1 场景描述StreamingFileSi原创 2021-09-13 22:56:30 · 821 阅读 · 2 评论 -
大数据Flink异步IO
目录1 介绍1.1 异步IO操作的需求1.2 使用Aysnc I/O的前提条件1.3 Async I/O API2 案例演示1 介绍1.1 异步IO操作的需求https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/stream/operators/asyncio.htmlAsync I/O 是阿里巴巴贡献给社区的一个呼声非常高的特性,于1.2版本引入。主要目的是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题。流计算系统原创 2021-09-13 22:55:22 · 342 阅读 · 0 评论 -
大数据Flink End-to-End Exactly-Once
目录1 流处理的数据处理语义1.1 At-most-once-最多一次1.2 At-least-once-至少一次1.3 Exactly-once-精确一次1.4 End-to-End Exactly-Once-端到端的精确一次1.5 注意:精确一次? 有效一次!1.6 补充:流计算系统如何支持一致性语义2 End-to-End Exactly-Once的实现2.1 Source2.2 Transformation2.3 Sink2.3.1 幂等写入(Idempotent Writes)2.3.2 事务写入原创 2021-09-13 22:50:29 · 305 阅读 · 0 评论 -
大数据Flink双流Join
目录1 介绍2 Window Join3 Interval Join4 代码演示5 代码演示1 介绍https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/stream/operators/joining.htmlhttps://zhuanlan.zhihu.com/p/340560908https://blog.youkuaiyun.com/andyonlines/article/details/108173259双流Join是原创 2021-09-13 22:42:31 · 388 阅读 · 0 评论 -
大数据Flink BroadcastState
目录1 BroadcastState介绍2 需求-实现配置动态更新3 编码步骤4 代码实现1 BroadcastState介绍在开发过程中,如果遇到需要下发/广播配置、规则等低吞吐事件流到下游所有 task 时,就可以使用 Broadcast State。Broadcast State 是 Flink 1.5 引入的新特性。下游的 task 接收这些配置、规则并保存为 BroadcastState, 将这些配置应用到另一个数据流的计算中 。⚫ 场景举例动态更新计算规则: 如事件流需要根据最新的规原创 2021-09-13 22:40:05 · 458 阅读 · 0 评论 -
大数据Flink实现订单自动好评
目录1 需求2 数据3 编码步骤4 代码实现5 效果1 需求在电商领域会有这么一个场景,如果用户买了商品,在订单完成之后,一定时间之内没有做出评价,系统自动给与五星好评,我们今天主要使用Flink的定时器来简单实现这一功能。2 数据自定义source模拟生成一些订单数据.在这里,我们生了一个最简单的二元组Tuple3,包含用户id,订单id和订单完成时间三个字段./** * 自定义source实时产生订单数据Tuple3<用户id,订单id, 订单生成时间> */publi原创 2021-09-10 22:54:21 · 372 阅读 · 0 评论 -
大数据Flink实时大屏统计
目录1 需求2 数据3 编码步骤:4 代码实现5 效果1 需求Flink模拟双十一实时大屏统计在大数据的实时处理中,实时的大屏展示已经成了一个很重要的展示项,比如最有名的双十一大屏实时销售总价展示。除了这个,还有一些其他场景的应用,比如我们在我们的后台系统实时的展示我们网站当前的pv、uv等等,其实做法都是类似的。今天我们就做一个最简单的模拟电商统计大屏的小例子,需求如下:1.实时计算出当天零点截止到当前时间的销售总额2.计算出各个分类的销售top33.每秒钟更新一次统计结果2 数据原创 2021-09-10 22:54:09 · 1855 阅读 · 0 评论 -
大数据Flink容错机制
目录1 Checkpoint1.1 State Vs Checkpoint1.2 Checkpoint执行流程1.2.1 简单流程1.2.2 复杂流程--课后自行阅读1.3 State状态后端/State存储介质1.3.1 MemStateBackend[了解]1.3.2 FsStateBackend1.3.3 RocksDBStateBackend1.4 Checkpoint配置方式1.4.1 全局配置1.4.2 在代码中配置2 状态恢复和重启策略2.1 自动重启策略和恢复2.1.1 重启策略配置方式2.原创 2021-09-10 22:53:59 · 378 阅读 · 0 评论 -
大数据Flink状态管理
目录1 Flink中的有状态计算2 无状态计算和有状态计算2.1 无状态计算2.2 有状态计算3 有状态计算的场景4 状态的分类4.1 Managed State & Raw State4.2 Keyed State & Operator State5 存储State的数据结构/API介绍6 State代码示例6.1 Keyed State6.2 Operator State1 Flink中的有状态计算注意:Flink中已经对需要进行有状态计算的API,做了封装,底层已经维护好了状态原创 2021-09-10 22:53:45 · 359 阅读 · 0 评论 -
大数据Flink Time与Watermaker
Flink-Time与Watermaker3.1 Time分类在Flink的流式处理中,会涉及到时间的不同概念,如下图所示:事件时间EventTime: 事件真真正正发生产生的时间摄入时间IngestionTime: 事件到达Flink的时间处理时间ProcessingTime: 事件真正被处理/计算的时间问题: 上面的三个时间,我们更关注哪一个?答案: 更关注事件时间 !因为: 事件时间更能反映事件的本质! 只要事件时间一产生就不会变化3.2 EventTime的重要性3.2.1 示.原创 2021-09-10 22:53:32 · 341 阅读 · 0 评论 -
大数据Flink Window操作
目录1. Flink四大基石2. Flink-Window操作2.1 为什么需要Window2.2 Window的分类2.2.1 按照time和count分类2.2.2 按照slide和size分类2.2.3 总结2.3.2 WindowAssigner2.3.3 evictor--了解2.3.4 trigger--了解2.3.5 API调用示例2.4 案例演示-基于时间的滚动和滑动窗口2.4.1 需求2.4.2 代码实现2.5 案例演示-基于数量的滚动和滑动窗口2.5.1 需求2.5.2 代码实现2.6原创 2021-09-09 22:17:58 · 467 阅读 · 0 评论 -
大数据Flink Transformation
目录1 官网API列表2 基本操作-略2.1 map2.2 flatMap2.3 keyBy2.4 filter2.5 sum2.6 reduce2.7 代码演示3 合并-拆分3.1 union和connect3.2 split、select和Side Outputs4 分区4.1 rebalance重平衡分区4.2 其他分区1 官网API列表https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/stream/operator原创 2021-09-08 22:00:25 · 258 阅读 · 0 评论 -
大数据Flink Sink
目录1 预定义Sink1.1 基于控制台和文件的Sink2 自定义Sink2.1 MySQL3. Connectors3.1 JDBC3.2 Kafka3.2.1 pom依赖3.2.2 参数设置3.2.3 参数说明3.2.4 Kafka命令3.2.5 代码实现-Kafka Consumer3.2.6 代码实现-Kafka Producer3.3 Redis1 预定义Sink1.1 基于控制台和文件的Sink⚫ API1.ds.print 直接输出到控制台2.ds.printToErr() 直接输原创 2021-09-08 21:54:35 · 601 阅读 · 0 评论 -
大数据Flink Source
目录1 预定义Source1.1 基于集合的Source1.2 基于文件的Source1.3 基于Socket的Source2 自定义Source2.1 随机生成数据2.2 MySQL1 预定义Source1.1 基于集合的Source⚫ API一般用于学习测试时编造数据时使用1.env.fromElements(可变参数);2.env.fromColletion(各种集合);3.env.generateSequence(开始,结束);4.env.fromSequence(开始,结束);原创 2021-09-08 20:59:46 · 243 阅读 · 0 评论 -
大数据Flink流处理相关概念
目录1 数据的时效性2 流处理和批处理3 流批一体API1 数据的时效性日常工作中,我们一般会先把数据存储在表,然后对表的数据进行加工、分析。既然先存储在表中,那就会涉及到时效性概念。如果我们处理以年,月为单位的级别的数据处理,进行统计分析,个性化推荐,那么数据的的最新日期离当前有几个甚至上月都没有问题。但是如果我们处理的是以天为级别,或者一小时甚至更小粒度的数据处理,那么就要求数据的时效性更高了。比如:对网站的实时监控、对异常日志的监控,这些场景需要工作人员立即响应,这样的场景下,传统的统一收集数原创 2021-03-14 22:57:21 · 393 阅读 · 0 评论 -
大数据Flink原理
目录1 Flink角色分工2 Flink执行流程2.1 Standalone版2.2 On Yarn版3 Flink Streaming Dataflow3.1 Dataflow、Operator、Partition、SubTask、Parallelism3.2 Operator传递模式3.3 Operator Chain3.4 TaskSlot And Slot Sharing4 Flink运行时组件5 Flink执行图(ExecutionGraph)1 Flink角色分工在实际生产中,Flink原创 2021-05-05 11:29:46 · 351 阅读 · 0 评论 -
大数据Flink入门案例
目录1 前置说明1.1 API1.2 编程模型2 准备工程2.1 pom文件3 Flink初体验3.1 需求3.2 编码步骤3.3 代码实现3.3.1 基于DataSet3.3.2 基于DataStream3.3.3 Lambda版3.3.4 在Yarn上运行3.3.5 Flink任务通过默认方式启动1 前置说明1.1 API⚫ APIFlink提供了多个层次的API供开发者使用,越往上抽象程度越高,使用起来越方便;越往下越底层,使用起来难度越大注意:在Flink1.12时支持流批一体,Dat原创 2021-05-05 11:23:06 · 566 阅读 · 1 评论 -
大数据Flink安装部署
目录1 Local本地模式1.1 原理1.2 操作1.3 测试2 Standalone独立集群模式2.1 原理2.2 操作2.3 测试3 Standalone-HA高可用集群模式3.1 原理3.2 操作3.3 测试4 Flink On Yarn模式4.1 原理4.1.1 为什么使用Flink On Yarn?4.1.2 Flink如何和Yarn进行交互?4.1.3 两种方式4.1.3.1 Session模式4.1.3.2 Per-Job模式4.2 操作4.3 测试4.3.1 Session模式4.3.2 P原创 2021-05-05 11:09:21 · 536 阅读 · 0 评论 -
大数据Flink概述
目录1 Flink概述1.1 框架版本1.2 编程语言2 实时即未来3 富二代Flink4 Flink官方介绍5 Flink组件栈6 Flink基石7 Flink用武之地7.1 Event-driven Applications【事件驱动】7.2 Data Analytics Applications【数据分析】7.3 Data Pipeline Applications【数据管道】1 Flink概述1.1 框架版本https://flink.apache.org/blog/Flink1.12.原创 2021-05-05 11:08:11 · 923 阅读 · 0 评论