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