
flink
文章平均质量分 75
源码分析
画画的老顽童
这个作者很懒,什么都没留下…
展开
-
Flink故障排查
参考https://www.cnblogs.com/wuchanming/p/7766994.htmlhttps://blog.youkuaiyun.com/m0_46449152/article/details/1119364851.查看 Task Heap 是否经常达到 100%2.查看 老年代 Full GC 发生次数解决方法可以使用 G1 垃圾回收器 -yD env.java.opts="-XX:+UseG1GC"问题排查找到 container所在的服务器ps -ef | gre原创 2022-03-02 15:05:20 · 2002 阅读 · 0 评论 -
Flink yarn-session模式下延长taskmanager驻留时间
resourcemanager.taskmanager-timeout 默认30000毫秒 taskmanager无任务运行就会被回收,下次提交任务时又会重新向yarn申请container启动taskmanager 耗时很大resourcemanager.taskmanager-timeout 增加为86400000 保留一天SlotManagerConfiguration.fromConfiguration(){ final Time taskManagerTimeout =原创 2021-12-21 16:36:00 · 1526 阅读 · 0 评论 -
flink standalone 客户端提交源码分析
启动入口CliFrontend.main -> cli.parseParameters -> ACTION_RUN run(params); -> executeProgram -> invokeInteractiveModeForExecution -> callMainMethod(){ mainMethod = entryClass.getMethod("main", String[].class); mainMethod.invoke(null, (原创 2021-10-16 18:54:20 · 406 阅读 · 1 评论 -
Flink Standalone集群启动源码分析
1、JobManager源码分析JobManager 是 Flink 集群的主节点,它包含三大重要的组件1、ResourceManagerFlink的集群资源管理器,只有一个,关于slot的管理和申请等工作,都由他负责2、Dispatcher负责接收用户提交的 JobGragh, 然后启动一个 JobManager, 类似于 YARN 集群中的AppMaster 角色,类似于 Spark Job 中的 Driver 角色3、WebMonitorEndpoint里面维护了很多很多的Handle原创 2021-02-10 21:45:26 · 360 阅读 · 0 评论 -
FlinkKafkaConsumer源码分析
https://www.jianshu.com/p/f6f135855e42https://www.cnblogs.com/dongxiao-yang/p/7700600.html补充consumerThread.setOffsetsToCommit(offsetsToCommit, commitCallback);-> consumerThread.run() -> consumer.commitAsync原创 2021-10-29 15:41:12 · 274 阅读 · 0 评论 -
FlinkKafkaProducer源码分析
FlinkKafkaProducer extends TwoPhaseCommitSinkFunction implements CheckpointedFunction, CheckpointListenerTwoPhaseCommitSinkFunction 实现 CheckpointedFunction中的initializeState和snapshotStateCheckpointListener 中的notifyCheckpointCompleteTwoPhaseCommitSinkFunc原创 2021-01-30 15:41:52 · 1293 阅读 · 0 评论 -
StreamFileSink源码分析
StreamFileSink源码分析2pc 参考 FlinkKafkaProducer原创 2021-01-30 16:19:19 · 345 阅读 · 0 评论 -
Flink Checkpoint
在 ExecutionGraphBuilder 构建 ExecutionGraph 的时候,会生成CheckpointCoordinatorConfiguration 对象,来保存成 JobGraph 中的 snapshotSettings 参数,最终该交给ExecutionGraphBuilder.enableCheckpointing();1、解析 ExecutionGraph 中的各种 ExecutionVertex,设置到 tasksToTrigger,tasksToWaitFor,task原创 2021-04-18 22:47:40 · 412 阅读 · 0 评论 -
StreamTask 执行
TaskExecutor.submitTask Task task = new Task( // TODO taskExecutorServices.createShuffleEnvironment taskExecutorServices.getShuffleEnvironment()创建ShuffleEnvironment T TaskExecutorServices.createShuffleEnvironment -> createShuffleEnvironment原创 2021-04-17 23:29:42 · 349 阅读 · 0 评论 -
flink 调度器概述
调度器是 Flink 作业执行的核心组件,管理作业执行的所有相关过程,包括 JobGraph 到ExecutionGraph 的转换、作业生命周期管理(作业的发布、取消、停止)、作业的 Task 生命周期管理(Task 的发布、取消、停止)、资源申请与释放、作业和 Task 的 Failover 等。调度有几个重要的组件:⚫ 调度器: SchedulerNG 及其子类、实现类⚫ 调度策略: SchedulingStrategy 及其实现类⚫ 调度模式: ScheduleMode 包含流和批的调度原创 2021-03-01 23:16:35 · 591 阅读 · 0 评论 -
Flink 任务调度源码分析4 (物理执行图(Task 的调度和执行))
物理执行图:JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个TaskManager 上部署Task 后形成的“图”,并不是一个具体的数据结构它包含的主要抽象概念有:1、Task:Execution被调度后在分配的 TaskManager 中启动对应的 Task。Task 包裹了具有用户执行逻辑的 operator。2、ResultPartition:代表由一个Task的生成的数据,和ExecutionGraph中的IntermediateResultParti原创 2021-02-11 17:09:21 · 528 阅读 · 2 评论 -
Flink 任务调度源码分析3 (ExecutionGraph 构建和提交源码解析)
ExecutionGraph:JobManager(JobMaster) 根据 JobGraph 生成 ExecutionGraph。ExecutionGraph是JobGraph 的并行化版本,是调度层最核心的数据结构client 生成 JobGraph 之后,就通过 submitJob 提交给 JobManager, JobManager 会根据JobGraph 生成对应的 ExecutionGraph。它包含的主要抽象概念有:1、ExecutionJobVertex:和JobGraph中的J原创 2021-02-11 15:38:34 · 277 阅读 · 0 评论 -
Flink 任务调度源码分析2 (JobGraph 构建和提交源码解析)
JobGraph:StreamGraph 经过优化后生成了 JobGraph,提交给 JobManager 的数据结构它包含的主要抽象概念有1、JobVertex:经过优化后符合条件的多个 StreamNode 可能会 chain 在一起生成一个JobVertex,即一个JobVertex 包含一个或多个 operator,JobVertex 的输入是 JobEdge,输出是IntermediateDataSet。2、IntermediateDataSet:表示 JobVertex 的输出,即经过原创 2021-02-11 14:39:54 · 315 阅读 · 0 评论 -
Flink 任务调度源码分析 1(StreamGraph 构建和提交源码解析)
四层图名词解释:原创 2021-02-11 11:21:36 · 394 阅读 · 0 评论 -
flink 四层图概述
Intermediate / Inter mi di ei te/四层图一个 Flink 流式作业,从 Client 提交到 Flink 集群,到最后执行,总共会经历四种不同的状态。总的来说:1、Client 首先根据用户编写的代码生成 StreamGraph,然后把 StreamGraph 构建成 JobGraph 提交给 Flink 集群主节点2、然后启动的 JobMaster 在接收到 JobGraph 后,会对其进行并行化生成 ExecutionGraph 后调度启动 Str原创 2021-03-01 22:39:13 · 751 阅读 · 0 评论 -
flink yarn-perjob任务提交流程
1、由脚本bin/flink 进入org.apache.flink.client.cli.CliFrontendCliFrontend main -> cli.parseAndRun -> run -> executeProgram -> ClientUtils.executeProgram-> program.invokeInteractiveModeForExecution() -> callMainMethod -> mainMethod.invoke原创 2021-02-10 11:25:23 · 2293 阅读 · 1 评论 -
Flink RPC 详解
参考spark rpc总览总结:ActorSystem 和 Actor/ActorRef 的概念,工作方式,通信方式等,注意异步和 mailbox 这两个概念1、ActorSystem 是管理 Actor生命周期的组件, Actor是负责进行通信的组2、每个 Actor 都有一个 MailBox,别的 Actor 发送给它的消息都首先储存在 MailBox 中,通过这种方式可以实现异步通信。3、每个 Actor 是单线程的处理方式,不断的从 MailBox 拉取消息执行处理,所以对于 Act原创 2021-02-09 18:02:15 · 883 阅读 · 0 评论