Flink BLOB架构

Posted andyhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink BLOB架构相关的知识,希望对你有一定的参考价值。

Flink中支持的BLOB文件类型

  • jar包

      被user classloader使用的jar包
  • 高负荷RPC消息

      1. RPC消息长度超出了akka.framesize的大小
      2. 在HA摸式中,利用底层分布式文件系统分发单个高负荷RPC消息,比如: TaskDeploymentDescriptor,给多个接受对象。
      3. 失败导致重新部署过程中复用RPC消息
  • TaskManager的日志文件

      为了在web ui上展示taskmanager的日志

按存储特性又分为两类

  • PERMANENT_BLOB

      生命周期和job的生命周期一致,并且是可恢复的。会上传到BlobStore分布式文件系统中。
  • TRANSIENT_BLOB

      生命周期由用户自行管理,并且是不可恢复的。不会上传到BlobStore分布式文件系统中。

架构图

技术分享图片

BlobStore

BLOB底层存储,支持多种实现`HDFS`,`S3`,`FTP`等,HA中使用BlobStore进行文件的恢复。

BlobServer

* 提供了基于jobId和BlobKey进行文件上传和下载的方法?
* 本地文件系统的读写,基于`<path>/<jobId>/<BlobKey>`目录结构
* HA 分布式文件系统的读写,基于`<path>/<jobId>/<BlobKey>`目录结构
* 负责本地文件系统和分布式文件系统的清理工作
* 先存储到本地文件系统中,然后如果需要的话再存储到分布式文件系统中
* 下载请求优先使用本地文件系统中的文件
* 进行HA恢复中,下载分布式系统中的文件到本地文件系统中

BlobClient

* 基于jobId和BlobKey对BlobServer中的文件进行本地文件缓存
* 本地文件的读写,基于`<path>/<jobId>/<BlobKey>`目录结构
* 优先使用本地文件系统中的文件,然后尝试从HA分布式文件中获取,最后才尝试从BlobServer中下载
* 负责本地文件系统的清理工作

LibraryCacheManager

桥接task的classloader和缓存的库文件,其`registerJob`,`registerTask`会构建并缓存job,task运行需要的classloader

示例解析:standalone模式中的jar包管理

以上是关于Flink BLOB架构的主要内容,如果未能解决你的问题,请参考以下文章

sql 这些代码片段将演示如何逐步使用PolyBase。你应该有一个blob存储和存储秘密方便

已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段

已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段

如何使用 Blob URL、MediaSource 或其他方法播放连接的媒体片段 Blob?

用于读取 blob 架构的 Azure 函数

3.flink运行时架构解析