Flink在这里添加的附加依赖文件,会自动下载到目标机器上吗?目录是什么?
在 Flink 中,可以通过在作业提交时添加附加依赖文件,以便在作业执行时使用这些依赖文件。这些附加依赖文件可以是 JAR、ZIP 或其他格式的文件,可以包含作业所需的类文件、配置文件等。
当您在提交作业时添加附加依赖文件时,Flink 会将这些文件上传到 JobManager 的本地文件系统中,并将它们添加到作业的 CLASSPATH 中。这样,在作业执行时,就可以直接使用这些依赖文件了。
默认情况下,附加依赖文件会被上传到 JobManager 的工作目录中,即 Flink 的配置文件中所配置的 jobmanager.archive.fs.dir 目录下。这个目录通常是在 JobManager 所在机器的本地文件系统中,而不是分布式文件系统如 HDFS 中。因此,如果您需要将附加依赖文件下载到其他机器中,需要手动将这些文件复制到其他机器上,或者将 jobmanager.archive.fs.dir 配置为一个共享文件系统目录,以便其他机器可以访问这些文件。
需要注意的是,附加依赖文件的文件名必须以
在 Flink 中,通过 "Add Additional Dependencies" 功能添加的附加依赖文件不会自动下载到目标机器上。这个功能主要用于将额外的依赖文件打包到 Flink 作业提交时的 JAR 文件中。
当您使用 "Add Additional Dependencies" 添加附加依赖文件后,Flink 将会将这些文件复制到作业提交时指定的目录下,并将它们打包到作业 JAR 文件中。这样,在作业运行时,这些依赖文件会随着作业 JAR 一起分发到执行任务的 TaskManager 节点上。
具体来说,附加依赖文件会被复制到 Flink 的 "lib" 目录下的 "job-artifacts" 子目录中。"job-artifacts" 目录由 Flink 自动生成,并以作业 ID 或者用户指定的作业名称作为目录名。在该目录中,Flink 会按照原始文件的目录结构进行保存。
例如,如果您添加了一个名为 "my-dependency.jar" 的依赖文件,Flink 会将其复制到类似于以下路径的目录中:
${FLINK_HOME}/lib/job-artifacts/<job-id>/my-dependency.jar
其中 ${FLINK_HOME}
是 Flink 安装目录,<job-id>
是作业的唯一 ID。
在作业执行期间,Flink 会根据需要将这些附加依赖文件分发到 TaskManager 节点上的工作目录,并在任务运行时将其添加到类路径中,以供任务使用。
总结而言,Flink 的附加依赖文件不会自动下载到目标机器上,而是复制到 Flink 目录下的 "lib/job-artifacts" 子目录中。在作业执行期间,它们将被分发到任务执行节点上,并添加到任务的类路径中。
/flink/usrlib目录,https://help.aliyun.com/zh/flink/user-guide/develop-a-jar-draft?spm=a2c4g.11186623.0.i0 在这边有,不过文档位置太深了,我们调整下,您先看着。
此回答整理自钉群“实时计算Flink产品交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。