首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

超全干货--Flink思维导图,花了3周左右编写、校对

  • 25-03-07 20:00
  • 3826
  • 8047
blog.csdn.net

大数据RPC技术链接:RPC研究,从浅到深,含研究笔记:超级全面,包懂

在流式分布式计算领域中,Flink可以和Spark Streaming、Storm叫板了。从我的使用流式情况来看,Flink在流式处理这块完全可以代替其他的框架了。Flink技术点多,容易忘记,为此专门整理了Flink思维导图。方便记忆。

需要说明一下,Flink使用场景:大数据流式计算、金融风控、实时异常监测(订单、传感器、刷单、登录)等。

超级干货--Flink思维导图,花了3周左右编写、校对。下载链接:Flink_思维导图(干货).xmind.zip

                            
 


如果之前对Spark 开发经验的小伙伴,Flink结合起来会更容易深入。以下是我自己整理的Flink相关笔记,同时与主流的Spark Streaming进行类比:

Flink 与 Spark Streaming 组件综合对比

中文名称

Flink

Spark Streaming

作业管理器JobManagerMaster+Driver
作业执行器TaskManagerWorker+Executor
工作线程SlotsCpu Core
最大并发度TaskManager数 * 每个TaskManager 中的Task SlotExecutor数 * 每个Executor 中的cpu core
混洗redistributeshuffle
数据流DStreamDataStream
转换操作TransformationTransformation
触发操作SinkAction
阶段TaskStage
子任务SubTaskTask
图DAG DataFlowGraph

JobManager,相当于Spark 中的ApplicationMaster中的Driver;作业管理器,是一个JVM进程,接收作业,分发执行图到taskManager

TaskManager,相当于Spark 中的Executor;任务管理器,是一个JVM进程,执行作业,它可能会在独立的线程上执行一个或多个subtask;Flink中会有多个TaskManager,每个TaskManager都包含一定数量的插槽slots

Slots,相当于Spark Executor中的cpu core,相当于工作线程。但不同的是Slots是静态的,Spark中的Executor是动态的插槽,推荐值是就当前节点的CPU CORES核心数;主要是隔离内存,为了控制一个TaskManager能接收多少个task,TaskManager通过task slot来进行控制(一个TaskManager至少有一个slot)

最大并行度,Spark:  Executor数 * 每个Executor 中的cpu core;  Flink:  TaskManager数 * 每个TaskManager 中的Task Slot

ResourceManger,是资源管理器,负责管理集群资源


Dispatcher,在yarn模式下不会创建生成分发器,为应用提交提供了REST接口, 提供一个Web UI,展示作业流程


Flink中的执行图可以分成四层:
    StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图
    StreamGraph:   是根据用户通过Stream API编写的代码生成的最初的图。用来表示程序的拓扑结构。
    JobGraph:  【Client上生成】StreamGraph经过优化生成了JobGraph,提交给JobManager的数据结构。主要的优化为,将多个符合条件的节点chain在一起作为一个节点
     ExecutionGraph:  【JobManager上生成】JobManager根据JobGraph生成ExecutionGraph。ExecutionGraph是JobGraph的并行化版本,是调度最核心的数据结构。
    物理执行图:【TaskManager运行】JobManager根据ExecutionGraph对Job进行调度后,在各个TaskManager上部署Task后形成的 "图",并不是一个具体的数据结构


Flink的Task和SubTask-划分的依据(叫redistribute,相当于spark中的shuffle(宽依赖)):

  1. 并行度发生变化;比如:之前并行度为4,现在并行度为2,叫:rebalance
  2. 发生keyBy算子,叫HASH
  3. 广播 brodcast
  4. 算子后面调用了 startNewChain/disableChaining

Flink支持数据类型:

  1. 基础数据类型,Java和Scala基础数据类型
  2. Java和Scala元组(Tuples)
  3. Scala样例类(case classes)
  4. Java简单对象(POJOs)
  5. 其它(Arrays, Lists, Maps, Enums,等等

Flink支持时间语义:

  1. Event Time: 事件创建的时间
  2. Ingestion Time: 数据进入Flink的时间
  3. Processing Time: 执行操作算子的本地系统时间,与机器无关

文章最后,给大家推荐一些受欢迎的技术博客链接:

  1. JAVA相关的深度技术博客链接
  2. Flink 相关技术博客链接
  3. Spark 核心技术链接
  4. 设计模式 —— 深度技术博客链接
  5. 机器学习 —— 深度技术博客链接
  6. Hadoop相关技术博客链接
  7. 超全干货--Flink思维导图,花了3周左右编写、校对
  8. 深入JAVA 的JVM核心原理解决线上各种故障【附案例】
  9. 请谈谈你对volatile的理解?--最近小李子与面试官的一场“硬核较量”
  10. 聊聊RPC通信,经常被问到的一道面试题。源码+笔记,包懂
  11. 深入聊聊Java 垃圾回收机制【附原理图及调优方法】

欢迎扫描下方的二维码或 搜索 公众号“大数据高级架构师”,我们会有更多、且及时的资料推送给您,欢迎多多交流!

                                           

       

注:本文转载自blog.csdn.net的不埋雷的探长的文章"https://blog.csdn.net/weixin_32265569/article/details/107426591"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top