文档首页/ MapReduce服务 MRS/ 开发指南(LTS版)/ MRS集群各组件JDK支持说明
更新时间:2025-12-16 GMT+08:00
分享

MRS集群各组件JDK支持说明

该章节仅适用于MRS 3.6.0及之后版本。

由于旧版本JDK在性能优化、安全补丁及新特性支持上已无法满足当前集群的运行需求,MRS集群中各组件运行的JDK版本进行了升级,可有效提升集群的稳定性、运行效率,并降低潜在的安全风险。

  • MRS集群内各组件服务端的Java进程均默认运行在JDK21下,集群各组件对JDK支持情况请参见表1
  • MRS集群客户端默认使用JDK8,用户可根据实际业务需求,指定使用其他版本的JDK。

    具体操作指导,请参考修改MRS集群客户端使用的JDK版本

  • MRS集群运行计算任务时,默认为JDK8,用户可根据实际业务需求,指定使用其他版本的JDK。

    支持的组件:Mapreduce、Flink、Spark、Hive(包含MR和Tez两个引擎)。

  • 对于支持UDF的组件,由于UDF要嵌入到JDK21版本的主进程运行,因此如果使用JDK8/JDK17进行UDF的开发,开发过程中需要保证程序对JDK21的兼容性。
    • HetuEngine内核升级,新的内核只能使用JDK21。
    • Doris的UDF执行环境固定为JDK21,如果使用JDK8/JDK17开发,兼容性需验证后使用。
    • ClickHouse支持设置UDF执行的JDK版本 ,默认为JDK8。
表1 MRS集群各组件JDK支持说明

组件

服务端JDK版本

客户端支持的JDK运行版本

二次开发对JDK的支持情况和约束说明

二次开发默认JDK编译版本

ClickHouse

JDK 21

不涉及

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 8

DBService

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 21

Doris

JDK 21

同时支持JDK 8、JDK 17、JDK21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 21

Flink

JDK 21

同时支持JDK 8、JDK 17、JDK21运行。

同时支持JDK 8、JDK 17、JDK21运行。

JDK 8

Flume

JDK 21

同时支持JDK 8、JDK 17、JDK21运行。

同时支持JDK 8、JDK 17、JDK21运行。

JDK 21

FTP-Server

JDK 21

不涉及。

不涉及。

不涉及

Guardian

JDK 21

同时支持JDK 8和JDK 17、JDK21运行。

不涉及。

不涉及

HBase

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8和JDK 21运行。

JDK 8

HetuEngine

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 8

HDFS

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 8

Hive

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

切换计算任务运行时使用的JDK版本,请参考配置Hive作业运行时使用的JDK版本

JDK 8

Hudi

不涉及

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 8

Hue

不涉及

不涉及。

不涉及。

不涉及

Iceberg

不涉及

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 21

Impala

JDK21

不涉及

不涉及

不涉及

JobGateway

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

不涉及。

JDK 21

Kafka

JDK 21

同时支持JDK 8、JDK 17运行。

同时支持JDK 8、JDK 17和JDK 21运行。

JDK 21

KrbServer

不涉及

不涉及。

不涉及。

不涉及

Loader

JDK 21

支持JDK 21运行。

不涉及。

不涉及

LdapServer

不涉及

不涉及。

不涉及。

不涉及

Mapreduce

JDK 21

不涉及。

同时支持JDK 8、JDK 17、JDK 21运行。

Mapreduce作业默认使用JDK 8运行,如果使用JDK 17或JDK 21运行时,需要执行如下操作:

  • 根据待使用的JDK版本,修改“客户端安装路径/Yarn/config/mapred-site.xml”和“客户端安装路径/HDFS/hadoop/etc/hadoop/mapred-site.xml”中“mapreduce.java.home.alias”的值。
    • JDK 8:JAVA_HOME
    • JDK 17:JAVA_HOME_17
    • JDK 21:JAVA_HOME_21
  • 登录Manager,修改Yarn服务参数“mapreduce.task.jdk.version”值为待使用的JDK版本,例如“JDK8”、“JDK17”、“JDK21”。

JDK 8

MemArtsCC

不涉及

同时支持JDK 8、JDK 17、JDK 21运行。

不涉及。

不涉及

MemArtsStore

不涉及

同时支持JDK 8、JDK 17、JDK 21运行。

不涉及。

不涉及

Oozie

JDK 21

同时支持JDK 8、JDK 17、JDK21运行。

同时支持JDK 8、JDK17、JDK 21运行。

JDK 8

Phoenix

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8和JDK 21运行。

JDK 8

Ranger

JDK 21

不涉及。

不涉及。

不涉及

Spark

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 8

Sqoop

不涉及

同时支持JDK 8、JDK 17、JDK 21运行。

不涉及。

不涉及。

Tez

JDK 21

支持JDK 21运行。

不涉及。

不涉及

Yarn

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

不涉及。

不涉及

ZooKeeper

JDK 21

同时支持JDK 8、JDK 17、JDK 21运行。

同时支持JDK 8、JDK 17、JDK 21运行。

JDK 8

修改MRS集群客户端使用的JDK版本

安装集群客户端后,默认使用的JDK版本为JDK 8,如果用户需要使用其他版本,可以参考该操作进行修改。

  1. 安装待使用的JDK到客户端安装节点,例如安装JDK 17.0.13,安装路径为“客户端安装目录/JDK”。
  2. 使用客户端安装用户,登录待修改JDK版本的客户端安装节点。
  3. 执行以下命令修改“component_env”文件。

    vi 客户端安装目录/JDK/component_env

    修改“export JAVA_HOME”取值为新版本JDK文件路径,例如:

    export JAVA_HOME="客户端安装目录/JDK/jdk17.0.13"

  4. 后续使用客户端时执行以下命令配置环境变量后,则会使用新版本的JDK。

    source 客户端安装目录/bigdata_env

    客户端中使用到的jar包,编译时需要开启target 8选项。

相关文档