
# 配置Hive作业运行时使用的JDK版本
#### 操作场景
Hive的执行引擎是负责处理和执行HQL查询的核心组件，它将查询转换为底层计算框架的任务，并协调这些任务的执行，以实现高效的数据处理。
MRS 3.6.0-LTS及之后版本，Hive支持指定MapReduce、Spark和Tez引擎运行作业的JDK版本，默认为JDK 8，还支持指定为JDK 17或JDK 21。
#### 操作步骤
1. 登录Manager界面，选择"集群 \> 服务"，在服务列表中单击"Hive"进入概览页面，选择" 配置 \> 全部配置"。
2. 在全部配置页面，修改MapReduce、Spark或Tez引擎运行作业的JDK版本。 
   - MapReduce引擎 在右上角的搜索框中搜索"hive.mapreduce.task.jdk.version"，修改该参数值为对应的JDK版本，单击"保存"保存配置。
     图1修改MapReduce引擎运行作业的JDK版本   
     ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002418571801.png "点击放大") 
   
   - Spark引擎 在左侧导航栏选择"HiveServer（角色） \> 自定义"，在参数"hive.server.customized.configs"中，新增自定义参数"spark.jdk.version"，值为运行作业的JDK版本，例如设置为"JDK17"或"JDK21"。单击"保存"，在弹出窗口单击"确定"。等待界面提示"操作成功"，单击"完成"，配置已修改，即可执行[4]提交作业。
     该参数动态生效，不需要重启HiveServer实例。
     
   
   - Tez引擎 在右上角的搜索框中搜索"hive.tez.task.jdk.version"，修改该参数值为对应的JDK版本，单击"保存"保存配置。
     图2修改Tez引擎运行作业的JDK版本   
     ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002385214274.png "点击放大") 
   
   
   
   
3. 单击"实例"，在实例列表中勾选所有HiveServer实例，选择"更多 \> 重启实例"，输入当前用户密码并单击"确定"，重启HiveServer实例。
4. 提交并运行Hive作业，可通过作业日志或作业进程查看运行作业的JDK版本。
   
   - MapReduce引擎 使用提交作业的用户登录Yarn WebUI页面，在"All Applications"页面，单击Hive任务对应的Application ID进入作业的运行信息页面，单击页面下方的"Logs"列的"Logs"链接，可查看作业的日志信息。
     在作业日志中搜索"$JAVA_HOME"，例如搜索到的结果为"$JAVA_HOME_21"则表示运行Hive作业的JDK版本为JDK 21。
     图3查看MapReduce引擎运行作业的JDK版本   
     ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002385267060.png "点击放大") 
   
   - Spark引擎 使用提交作业的用户登录Spark WebUI页面，单击Hive任务对应的Application ID进入作业的运行信息页面，单击"Environment"页签，在"Runtime Information"区域查看"Java Version"即为运行Hive作业的JDK版本，例如查看到的值为"21.0.8"则JDK版本为JDK 21。
     图4查看运行Hive on Spark作业的JDK版本   
     ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002417379502.png "点击放大") 
   
   - Tez引擎
     1. 使用提交作业的用户登录Yarn WebUI页面，在"All Applications"页面，查看并记录Hive任务对应的Application ID。
     
     2. 单击Application ID进入作业的运行信息页面，查看并记录页面下方"Node"列运行作业的主机名，即为运行Hive作业的节点。
     
     3. 在Manager页面，单击"主机"，在主机列表中查看[4.c]获取到的主机对应的IP地址。
     
     4. 使用**root** 用户登录运行Hive作业的节点，执行以下命令查看作业进程信息：
        ```
        ps -ef | grep 作业的Application ID
        ```
        在回显信息中搜索"jdk"，例如搜索到的结果为"jdk-21.0.4"则表示运行Hive作业的JDK版本为JDK 21。
        
      
   
   
   
   
 
