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

为所有 Talend 服务升级 Java

您可以升级 Java 以避免安全问题。此过程将完成 Java 在 Talend 服务上的次要或主要更新所需的不同步骤。对于轻微的降级也可以遵循该过程。

开始之前

  • 下载并解压 update_java.zip 文件。根据您的操作系统,使用 .bat 文件或 .sh 文件。
  • 在 Windows 上,仅当 Talend 主文件夹中的 utils 文件夹中没有 sed.zip 存档时,才下载此文件。

关于此任务

更新Talend所有服务的过程不包括在内Talend Remote Engine,因为此服务需要不同的步骤。有关更多信息,请参阅为 Talend Remote Engine 升级 Java
信息注释限制: Talend LogServer(已弃用)Talend MDM,Nexus 不支持 Java 17。Nexus 不支持 Java 11。

为 Linux 上的所有 Talend 服务升级 Java

Procedure

  1. 根据兼容的 Java 环境页面安装新的 Java 版本。
  2. 使用命令 systemctl | grep talend 查找所有正在运行的 Talend 服务。
  3. 使用命令 systemctl stop <service name> 停止所有 Talend 服务。
  4. 使用文本编辑器打开 update_java.sh
  5. 在脚本中找到变量并按如下方式设置它们:

    TALEND_HOME=<Talend_home_folder>(例如:TALEND_HOME=/opt/Talend-8.0.1

    PROD_VER=<Talend_version>(例如:PROD_VER=8.0.1

    JAVA_HOME=<Java_home_folder>(例如:JAVA_HOME=/usr/lib/jvm/jre1.8.0_221
  6. 以超级用户身份,运行 update_java.sh。此脚本将用安装中的新值替换 Java 的硬编码路径。
  7. 重新启动计算机或使用命令 systemctl start <service name> 手动启动所有 Talend 服务。

Results

Talend Remote Engine 外,所有 Talend 服务现在都使用新的 Java 版本。

为 Windows 上所有 Talend 服务升级 Java

Procedure

  1. update_java.bat 文件放在 Talend 主文件夹的 utils 文件夹中。
  2. 如果您下载了 sed.zip,请将其放置在 utils 文件夹中。
  3. 根据兼容的 Java 环境页面安装新的 Java 版本。
  4. 在 Windows 搜索选项卡中,键入 services.msc 并打开 Microsoft 管理控制台应用程序。
  5. 查找 Talend 服务列表,右键单击每个服务并选择停止
    最后停止的服务应该是 Talend Administration CenterTalend Identity and Access Management,然后是 Kafka、ZooKeeper 和 MongoDB。
  6. 转到系统属性 > 高级 > 环境变量
  7. 更新 JAVA_HOME 环境变量和 PATH 变量:
    1. System Variables (系统变量) 下,单击 New... (新建) 创建变量。将变量命名为 JAVA_HOME,输入到 Java 环境的路径,然后单击 OK (确定)
    1. System Variables (系统变量) 下,选择 Path (路径) 变量并单击 Edit... (编辑...),在 Path 变量值的末尾添加以下变量:;%JAVA_HOME%\bin
  8. 打开命令提示符应用程序。
  9. 键入 echo %JAVA_HOME%,然后按 Enter 键。显示的值是新的值集。
  10. 使用文本编辑器打开 update_java.bat
  11. 在脚本中找到变量并按如下方式设置它们:

    "TALEND_HOME=C:\<Talend_home_folder>"(例如:set "TALEND_HOME=C:\Talend\8.0.1"

    "PROD_VER=<Talend_version>"(例如:set "PROD_VER=8.0.1"

  12. 如果您还没有此配置,在 setenv.bat 文件中添加 --add-opens=java.base/java.lang=ALL-UNNAMED
    然后以管理员身份运行以下命令以启动 Talend Administration Center 服务:
    cd C:\Talend\8.0.1\tac\apache-tomcat\bin
    tomcat9.exe //US//talend-tac-8.0.1 ++JvmOptions="--add-opens=java.base/java.lang=ALL-UNNAMED
  13. 以超级用户身份,运行 update_java.bat。此脚本将用安装中的新值替换 Java 的硬编码路径。
  14. 重新启动计算机或从 service.msc 应用程序手动启动所有 Talend 服务。

Results

Talend Remote Engine 外,所有 Talend 服务现在都使用新的 Java 版本。

Talend Remote Engine 升级 Java

本部分说明在已安装远程引擎的情况下,如何将 Java 版本从 8 升级到 11。

Procedure

  1. 在 Java 8 上运行 Talend Remote Engine 后,将以下文件复制/粘贴到 <RE>/deploy 目录中:
    • <RE>/system/org/apache/servicemix/specs/org.apache.servicemix.specs.jaxws-api-2.3/2.3_2/org.apache.servicemix.specs.jaxws-api-2.3-2.3_2.jar
    • <RE>/system/org/apache/servicemix/specs/org.apache.servicemix.specs.saaj-api-1.4/1.4_1/org.apache.servicemix.specs.saaj-api-1.4-1.4_1.jar(仅在未启用可观察性特性的情况下)。
    等待一分钟,直到安装完成。
  2. 如果您的 Talend Remote Engine 及其服务正在运行,请停止它们(请参阅管理远程引擎服务)。
  3. 安装 Java 11 版本。
  4. 更新系统服务文件 (/opt/Talend Remote Engine/etc/talend-remote-engine-wrapper.conf):
    1. 编辑文件并查找以下行:set.default.JAVA_HOME=/usr/lib/jvm/jre1.8.0_221
      用新的 JAVA_HOME 路径更新它。例如:set.default.JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
    2. 添加一个新变量来描述 Talend Remote Engine Karaf 容器版本。对于 RE 版本 2.11.2 至 2.11.11,该值应为 4.2.12,对于自 2.12.0 起的 RE 版本,该值为 4.2.15
      例如:set.default.KARAF_VERSION=4.2.15
    3. "set.JAVA_TOOL_OPTIONS=-Dlog4j2.formatMsgNoLookups=true" 之后添加额外的 Java 选项配置:
      set.JDK_JAVA_OPTIONS=--add-reads=java.xml=java.logging --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED --patch-
      
      module java.base=%KARAF_HOME%/lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar --patch-module 
      java.xml=%KARAF_HOME%/lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar --add-
      opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens 
      java.naming/javax.naming.spi=ALL-UNNAMED --add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED --add-
      exports=java.base/sun.net.www.protocol.file=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED --add-
      exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED --add-
      exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-exports=java.base/sun.net.www.content.text=ALL-UNNAMED --add-
      
      exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
    4. 更新 Karaf Java 类路径,方法是将
      wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar
      wrapper.java.classpath.2=%KARAF_BASE%/lib/wrapper/*.jar
      替换为:
      wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar
      wrapper.java.classpath.2=%KARAF_BASE%/lib/jdk9plus/*.jar
      wrapper.java.classpath.3=%KARAF_BASE%/lib/wrapper/*.ja
    5. 更新 JVM 参数,方法是将
      wrapper.java.additional.1=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
      wrapper.java.additional.2=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
      wrapper.java.additional.3=-Dkaraf.instances=%KARAF_HOME%/instances
      wrapper.java.additional.4=-Dkaraf.home=%KARAF_HOME%
      wrapper.java.additional.5=-Dkaraf.base=%KARAF_BASE%
      wrapper.java.additional.6=-Dkaraf.data=%KARAF_DATA%
      wrapper.java.additional.7=-Dkaraf.etc=%KARAF_ETC%
      wrapper.java.additional.8=-Dkaraf.log=%KARAF_LOG%
      wrapper.java.additional.9=-Dkaraf.restart.jvm.supported=true
      wrapper.java.additional.10=-Djava.io.tmpdir=%KARAF_DATA%/tmp
      wrapper.java.additional.11=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
      wrapper.java.additional.12=-Dkaraf.startLocalConsole=false
      wrapper.java.additional.13=-Dkaraf.startRemoteShell=true
      替换为:
      wrapper.java.additional.1=-Dkaraf.instances=%KARAF_HOME%/instances
      wrapper.java.additional.2=-Dkaraf.home=%KARAF_HOME%
      wrapper.java.additional.3=-Dkaraf.base=%KARAF_BASE%
      wrapper.java.additional.4=-Dkaraf.data=%KARAF_DATA%
      wrapper.java.additional.5=-Dkaraf.etc=%KARAF_ETC%
      wrapper.java.additional.6=-Dkaraf.log=%KARAF_LOG%
      wrapper.java.additional.7=-Dkaraf.restart.jvm.supported=true
      wrapper.java.additional.8=-Djava.io.tmpdir=%KARAF_DATA%/tmp
      wrapper.java.additional.9=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
      wrapper.java.additional.10=-Dkaraf.startLocalConsole=false
      wrapper.java.additional.11=-Dkaraf.startRemoteShell=true
      信息注释Note: 要替换的行是安装 Talend Remote Engine 后创建的原始行。如果您添加了额外的 JVM 参数,它们应该放在上面的列表之后,编号从 12 开始,不留空白。
  5. 编辑文件 /opt/Talend Remote Engine/bin/talend-remote-engine-service,并查找以下行:JAVA_HOME="/usr/lib/jvm/jre1.8.0_221"
    用新的 JAVA_HOME 路径更新它。例如:JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
  6. 启动远程引擎服务(请参阅管理远程引擎服务)。
  7. 打开 Talend Management Console 并检查日志中的 Talend Remote Engine 可用性和状态。
  8. 启动您的 Talend Remote Engine

本页面有帮助吗?

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