Flink架构
Flink 运行时的脑图,重点包括:
- Session 集群、Application 集群两种模式,以及客户端、JobManager、TaskManager 之间的基本关系
- 作业从提交到调度执行的主链路,包括心跳、checkpoint、slot 分配、任务状态汇报
- 运行时启动时会顺带拉起的组件,比如 RPC service、blob server、metric registry、HA service、heartbeat service 等
Flink 运行时的脑图,重点包括:
Flink 逻辑计划到物理执行的主线整理,重点包括:
StreamGraph,批任务如何进入 OptimizedPlan,最后统一落到 JobGraphStreamNode、StreamEdge、JobVertex、JobEdge、IntermediateDataSet 这些图结构节点和边分别代表什么ExecutionGraph 并进入物理执行PyTorch 入门学习单,内容比较散,这里把主线收一下:
numpy、tensor、索引切片、张量和数组转换这些最基础的操作开始Torchvision、MNIST、训练评估、模型保存加载,以及常见图像预处理在公有云和 Kubernetes 环境里,日志怎么从 pod 里拿出来、再怎么落到后端存储:
log4j appender 直接发送,或者由辅助程序读取日志文件再转发Kafka、共享存储、S3,或者交给 Raft 集群、NewSQL 系统做聚合和索引记录一个 BTrace 脚本,再顺带把几类 Java 线上诊断工具放到一起看:
Arthas retransform、jdb 这种更常见的调试方式做对照JFR、VisualVM、JProfiler、MAT、火焰图这些工具,方便按问题类型选手段总结:
client <-> RM、RM <-> NM、RM <-> AM、AM <-> NM 这些 RPC 通信关系,以及 reactor 和异步事件处理模型ResourceManager、NodeManager、ApplicationMaster 内部模块、状态机和资源调度器总结:
DataSourceRegister 的注册方式,以及自定义 XXRelationProvider 是怎么被 Spark 发现和加载的DataSource 的查找过程,以及 DataFrameReader、DataFrameWriter 在读写路径里的角色CheckpointRDDPartition、ReliableCheckpointRDD 和 SparkSession 内部的 SparkContext、sharedState、SQLContext、RuntimeConfig总结:
RDD、DAGScheduler、TaskScheduler、SchedulerBackend 看作业是怎么拆成 stage 和 task 再被调度出去的MemoryAllocator、TaskMemoryManager、MemoryConsumer 到 AppendOnlyMap、ExternalSorter、ShuffleWriter、ShuffleReader,看内存和 shuffle 主链路Executor 启动 task、Standalone 下 Driver/Worker/Master 交互,以及 YARN cluster / client 模式的差异