使用
ExecutionEnvironment.registerCachedFile
pipeline.cached-files
session模式上传BlobServer、PerJob模式直接上传HDFS。
何为BlobServer
Flink JobManager运行时的一个组件,用来管理大文件的。
为什么要有BlobServer
BlobServer的工作原理
BlobServer
FileSystemBlobStore
BlobCache
Session模式下,Job结束后。BlobServer会把Job所属的Blob文件删除
源码
Client
pipeline.cached-files 中的参数会
通过StreamGraphGenerator设置到StreamGraph#userArtifacts中
通过StreamingJobGraphGenerator设置到JobGraph#userArtifacts
上传文件PerJob 和 Remote Session模式不一样�
JobManager
Session 模式 Dispatcher会调用ClientUtils.uploadJobGraphFiles上传文件到BlobServer
�Dispatcher DispatcherRestEndpoint
TaskManager
Task#doRun()
BlobCacheService
Task#doRun() 调用 DistributedCache.readFileInfoFromConfig 根据配置将二进制文件放置到Task的分布式缓存中。
如果有blobKey从BlobServer中拷贝,如果没有则从本地文件系统拷贝
�
�
�