
# MRS集群各组件JDK支持说明
由于旧版本JDK在性能优化、安全补丁及新特性支持上已无法满足当前集群的运行需求，MRS对最新版本集群中各组件运行的JDK版本进行了升级，可有效提升集群的稳定性、运行效率，并降低潜在的安全风险。
- MRS集群内各组件服务端的Java进程均默认运行在JDK 21下，集群各组件对JDK支持情况请参见[表1]。
  ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
  该章节仅适用于MRS 3.6.0及之后版本。
  
- MRS集群客户端默认使用JDK8，用户可根据实际业务需求，指定使用其他版本的JDK。 具体操作指导，请参考[修改MRS集群客户端使用的JDK版本]。
  
- MRS集群运行计算任务时，默认为JDK8，用户可根据实际业务需求，指定使用其他版本的JDK。 支持的组件：Mapreduce、Flink、Spark、Hive（包含MR和Tez两个引擎）。
  
- 对于支持UDF的组件，由于UDF要嵌入到JDK 21版本的主进程运行，因此如果使用JDK8/JDK17进行UDF的开发，开发过程中需要保证程序对JDK 21的兼容性。
  - HetuEngine内核升级，新的内核只能使用JDK 21。
  
  - Doris的UDF执行环境固定为JDK 21，如果使用JDK 8/JDK 17开发，兼容性需验证后使用。
  
  - ClickHouse支持设置UDF执行的JDK版本 ，默认为JDK 8。
   
 表1MRS集群各组件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、JDK 21运行。 | 同时支持JDK 8、JDK 17、JDK 21运行。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | JDK 21        |
| Flink        | JDK 21   | 同时支持JDK 8、JDK 17、JDK 21运行。 | 同时支持JDK 8、JDK 17、JDK 21运行。 通过FlinkServer平台或者客户端提交作业时，可切换JDK版本，请参考[指定Flink作业运行的JDK版本](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_300891.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | JDK 8         |
| Flume        | JDK 21   | 同时支持JDK 8、JDK 17、JDK 21运行。 | 同时支持JDK 8、JDK 17、JDK 21运行。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | JDK 21        |
| Guardian     | JDK 21   | 同时支持JDK 8和JDK 17、JDK 21运行。 | 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 不涉及           |
| 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运行。 Hive支持指定MapReduce、Spark和Tez引擎运行作业的JDK版本，请参考[配置Hive作业运行时使用的JDK版本](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_300647.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | JDK 8         |
| Hudi         | 不涉及      | 同时支持JDK 8、JDK 17、JDK 21运行。 | 同时支持JDK 8、JDK 17、JDK 21运行。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | JDK 8         |
| Iceberg      | 不涉及      | 同时支持JDK 8、JDK 17、JDK 21运行。 | 同时支持JDK 8、JDK 17、JDK 21运行。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | JDK 21        |
| Impala       | JDK 21   | 不涉及                        | 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 不涉及           |
| 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、JDK 21运行。 | 同时支持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运行。 Spark支持指定运行作业的JDK版本，请参考[配置Spark作业运行时使用的JDK版本](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_300507.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 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**
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   客户端中使用到的jar包，编译时需要开启target 8选项。
   
   
 
