MRS集群各组件JDK支持说明
该章节仅适用于MRS 3.6.0及之后版本。
由于旧版本JDK在性能优化、安全补丁及新特性支持上已无法满足当前集群的运行需求,MRS集群中各组件运行的JDK版本进行了升级,可有效提升集群的稳定性、运行效率,并降低潜在的安全风险。
- MRS集群内各组件服务端的Java进程均默认运行在JDK21下,集群各组件对JDK支持情况请参见表1。
- MRS集群客户端默认使用JDK8,用户可根据实际业务需求,指定使用其他版本的JDK。
具体操作指导,请参考修改MRS集群客户端使用的JDK版本。
- MRS集群运行计算任务时,默认为JDK8,用户可根据实际业务需求,指定使用其他版本的JDK。
- 对于支持UDF的组件,由于UDF要嵌入到JDK21版本的主进程运行,因此如果使用JDK8/JDK17进行UDF的开发,开发过程中需要保证程序对JDK21的兼容性。
- HetuEngine内核升级,新的内核只能使用JDK21。
- Doris的UDF执行环境固定为JDK21,如果使用JDK8/JDK17开发,兼容性需验证后使用。
- ClickHouse支持设置UDF执行的JDK版本 ,默认为JDK8。
|
组件 |
服务端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 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,如果用户需要使用其他版本,可以参考该操作进行修改。
- 安装待使用的JDK到客户端安装节点,例如安装JDK 17.0.13,安装路径为“客户端安装目录/JDK”。
- 使用客户端安装用户,登录待修改JDK版本的客户端安装节点。
- 执行以下命令修改“component_env”文件。
vi 客户端安装目录/JDK/component_env
修改“export JAVA_HOME”取值为新版本JDK文件路径,例如:
export JAVA_HOME="客户端安装目录/JDK/jdk17.0.13"
- 后续使用客户端时执行以下命令配置环境变量后,则会使用新版本的JDK。
source 客户端安装目录/bigdata_env
客户端中使用到的jar包,编译时需要开启target 8选项。