Hive 支持 MapReduce、 Tez、 Spark 作为执行引擎,弹性 MapReduce 中默认为 MapReduce ,本文为您介绍如何在 Hive 中配置执行引擎。
一般情况下建议您使用执行引擎 Tez 替代 MapReduce,这样您会获得更好的计算效率。
开发准备
确认您已经开通了腾讯云,并且创建了一个 EMR 集群,详情参考创建集群。 在创建 EMR 集群时在软件配置界面选择 Hive 组件,如果需要切换 Tez 或 Spark 执行引擎,在创建集群时需要勾选对应组件。
配置引擎
登录 Hive 客户端,具体操作参考 Hive 连接方式,Hive 的执行引擎由 hive.execution.engine 参数配置,默认执行引擎为 mr,执行如下命令可查看当前执行引擎: hive> set hive.execution.engine;
hive.execution.engine=mr
在命令行中切换执行引擎
通过以下指令可以修改本次客户端会话中的执行引擎 。
修改执行引擎为 Tez:
hive> set hive.execution.engine=tez;
修改执行引擎为 Spark:
hive> set hive.execution.engine=spark;
执行完成后可以输入以下命令进行验证:
hive> set hive.execution.engine;
返回信息为您设置的执行引擎则说明配置成功。
说明:
以上切换执行引擎的操作只对单个客户端会话生效,由其他客户端进入或者退出后重新连接会恢复默认执行引擎。
在配置文件中切换执行引擎
全局切换默认执行引擎可通过 EMR 控制台 集群服务 > HIVE > 配置管理 页面,找到 hive-site.xml 配置文件,设置以下参数值:
修改执行引擎为 Tez:
hive.execution.engine = tez
修改执行引擎为 Spark:
hive.execution.engine = spark
执行保存 保存配置 > 保存并下发,并重启 HiveServer2,执行完成后即可修改 Hive 的默认执行引擎。
本页内容是否解决了您的问题?