跳到主要内容 跳到补充内容

Talend JobServer 设置兼容的 Java 版本以运行作业

根据作业的 Java 兼容性级别,配置您的 JobServer 以使用适当的 Java 版本执行作业。

默认情况下,Talend JobServer 会使用其环境的 Java 版本来执行作业。因此,如果跳过本节,Talend JobServer 默认为 Java 17。

不过,有两种方法可以配置不同的 Java 版本来运行作业:
  • 建议从 8.0.2.20250129_0823_patch 开始(在 R2025-01 中发布)的 JobServer 实例使用:从该版本开始,添加了动态 JVM 选择模式,可自动将服务器调整到正确的 Java 版本以运行作业。请参阅自适应模式:将 Talend JobServer 配置为动态选择 Java 版本
  • 如果您的 JobServer 版本较旧,且无法升级到最新版本,请按照此步骤指定用于执行的 Java 版本。这种方法不是动态的,只能指定一个版本。请参阅为 Talend JobServer 配置 JVM

自适应模式:将 Talend JobServer 配置为动态选择 Java 版本

在此模式下,Talend JobServer 会根据要执行作业的 Java 兼容性级别自动选择适当的 Java 实例。

这种动态 Java 版本(自适应)模式可帮助您执行不同 Studio 版本的作业,而无需重建。

信息注释提示: 工作的 Java 兼容性级别在 Talend Studio 中设置。

步骤

  1. 停止 Talend JobServer。若要优雅地关闭,请参阅 优雅地关闭 Talend JobServer
  2. 转到安装 Talend JobServer 的目录,并打开 start_rs.bat 文件进行编辑。
  3. 添加 Java 系统属性至 MY_JVM_ARGS 行。这些属性提供了 Java 安装的路径。
    set MY_JVM_ARGS="-Dcom.sun.management.jmxremote -Dorg.talend.execution.JAVA_8_PATH=\path\to\java8\bin -Dorg.talend.execution.JAVA_11_PATH=\path\to\java11\bin -Dorg.talend.execution.JAVA_17_PATH=\path\to\java17\bin"                  
    Talend JobServer 选择 Java 版本,如下所示:
    • 将作业的 Java 级别作为候选版本进行分析。
    • 如果候选者用 org.talend.execution.JAVA_*_PATH 配置,使用那个 Java 实力。
    • 如果未配置,则选择下一个更高配置的 Java 版本。

      例如,如果作业使用 Java 8,但未配置 Java 8,而配置了 Java 11,Talend JobServer 则选择 Java 11。

    • 如果作业需要,但 org.talend.execution.JAVA_17_PATH 未设置,则使用用于服务器启动的 Java 实例。
  4. 重启 JobServer。

自适应模式的典型使用案例

  • 为在 Java 8 上运行而构建的作业:

    这些作业是按照 Java 8 合规性级别编译的,不包括 --添加--打开(未选择启用 Java 17 兼容性复选框)。它们通常与 Java 11 兼容。在自适应模式下同时设置 Java 8 和 11 或单独设置 Java 11 可确保它们正确运行。

    信息注释提示: Java 8 不支持 --add-opens
  • 标准(数据集成)为在 Java 11 上运行而构建的作业:

    这些作业是按照 Java 8 合规性级别编译的,在需要时包括 --add-opens(已选择启用 Java 17 兼容性复选框)。

    它们通常与 Java 11 兼容。在 Java 17 上运行它们是可能的,但可能容易出错,因为 --add-opens 可能缺少 Java 17 正确运行所需的模块。

    将 Java 11 设置为自适应模式后,它就能处理这些作业。

  • 为在 Java 17 上运行而构建的作业:

    这些工作是按照 Java 17 合规级别编译的。它们在以自适应模式设置的 Java 17 实例上运行,如果未设置,则在服务器的默认 Java 实例上运行。

下一步做什么

如果需要以服务形式安装 Talend JobServer,请参考此步骤设置运行作业的兼容 Java 版本。

Talend JobServer 配置 JVM

Talend JobServer 允许选择非默认使用的其他 JVM 来运行作业。如果您已激活上述自适应模式,请忽略本节内容。

关于此任务

例如,您可以将 Talend JobServer 配置为从 Java 17 开始,并使用 Java 11 执行作业。

要使用“作为服务安装的 Talend JobServer 获得相同的结果,请参阅将 Talend JobServer 作为服务安装到 Windows

步骤

  1. 如果还没有完成,请将 Java 11 实例的路径添加到 PATH 环境变量中。
  2. 打开命令行并执行 java -version 命令。
    您应该看到打印的 Java 11,这表明任何 Java 进程默认情况下都是使用 PATH 中定义的 Java 11 可执行文件启动的。
  3. 如果还没有完成,请将 Java 17 实例的路径添加到 JAVA_HOME 环境变量中。
  4. 转到安装 Talend JobServer 的目录,并打开 start_rs.bat 文件进行编辑。
  5. set MY_JAVA=java 更改为 set MY_JAVA=%JAVA_HOME%/bin/java,确保您的 Talend JobServerJAVA_HOME 中定义的 JAVA 17 开始。
  6. stop_rs.bat 文件中重复此操作。

结果

下次启动 Talend JobServer 时,它将使用 Java 17 启动,使用 Java 11 执行作业。
信息注释注: 或者,您可以使用作业启动器路径参数来定义要使用的Java实例,但由于其缺乏可移植性,不建议这样做。为此,请
  1. 转到目录 <root>/conf/,其中 <root>Talend JobServer 路径,并打开 TalendJobServer.properties 文件进行编辑。

  2. 在专用于作业启动程序路径的行中,在等号后添加您的 Java 可执行文件的路径。
    # Set the executable path of the binary which will run the job, for example: /usr/bin/java/java or "c:\\Program Files\\Java\\bin\\java.exe"
                                    org.talend.remote.jobserver.commons.config.JobServerConfiguration.JOB_LAUNCHER_PATH="C:\\Program Files\\Java\\jdk11.0.13\\bin\\java.exe"

    仅当您的路径包含空格时才需要使用引号,如截图中所示。否则,请输入不带引号的路径。

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们!