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选项。