更新时间:2025-12-10 GMT+08:00
分享

配置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版本
    • Spark引擎

      在左侧导航栏选择“HiveServer(角色) > 自定义”,在参数“hive.server.customized.configs”中,新增自定义参数“spark.jdk.version”,值为运行作业的JDK版本,例如设置为“JDK17”或“JDK21”。单击“保存”,在弹出窗口单击“确定”。等待界面提示“操作成功”,单击“完成”,配置已修改,即可执行4提交作业。

      该参数动态生效,不需要重启HiveServer实例。

    • Tez引擎

      在右上角的搜索框中搜索“hive.tez.task.jdk.version”,修改该参数值为对应的JDK版本,单击“保存”保存配置。

      图2 修改Tez引擎运行作业的JDK版本

  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版本
    • 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引擎
      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。

相关文档