在Flink为何每次都生成一个新的,能不能共用一个 省的每次都上传文件?

Flink提交任务到yarn的时候,每次会把jar包存储到application_xxx 目录下,每次提交都会生成一个新的文件夹,这些依赖包几百M,而我每次又不改这些,在Flink为何每次都生成一个新的,能不能共用一个 省的每次都上传文件?b0e8f01e55bd8218b6033a5afbd8242e.png

展开
收起
三分钟热度的鱼 2024-01-17 17:06:20 71 分享 版权
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink在提交任务到YARN时,会将依赖的jar包存储到以application_xxx为前缀的目录下。这是因为每个Flink应用程序都有自己的JAR文件和类路径,因此需要将这些依赖项单独打包并存储在每个应用程序目录中。

    如果您希望避免每次都上传这些依赖包,可以考虑以下几种方法:

    1. 使用共享库:您可以将所有应用程序共享的依赖项打包到一个JAR文件中,并将其上传到HDFS或其他共享存储中。然后,在每个应用程序的启动命令中指定该共享库的位置。这样,所有应用程序都可以共享同一个依赖库,而无需重复上传。

    2. 使用Maven或Gradle构建工具:您可以使用Maven或Gradle等构建工具来管理您的项目依赖关系。这些工具可以自动下载和管理所需的依赖项,并在构建过程中将它们打包到应用程序的JAR文件中。这样,您只需在构建阶段上传一次依赖项,而无需在每次提交时都重新上传。

    3. 使用Flink的远程缓存功能:Flink还提供了远程缓存功能,允许您将常用的数据集缓存在分布式文件系统(如HDFS)中。这样,多个应用程序可以共享同一份数据,而无需每次都重新加载。

    请注意,以上方法可能因您的具体需求和环境而有所不同。您可以根据自己的情况选择适合您的方法来避免重复上传依赖包。

    2024-01-18 14:23:05
    赞同 展开评论
  • 上传到hdfs,然后提交参数指定provide lib参数,这样yarn分发下去后,所有的container都会使用同一份jar包列表啦。 yarn.provided.lib.dirs=hdfs://node100:8020/user/dlink/flink-yarn/1.14.3/jars;hdfs://node100:8020/user/dlink/flink-yarn/1.14.3/plugins 此回答整理自钉群“【②群】Apache Flink China社区”

    2024-01-17 18:01:29
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理