本文为您介绍如何通过火山引擎 E-MapReduce(EMR)集群,使用 Tez 执行 SQL 作业。
TEZ 的诞生主要是为了解决 MapReduce 效率低下的问题。
TEZ 将原有的 Map 和 Reduce 两个操作简化为一个概念-Vertex;并将原有的计算处理节点拆分成多个组成部分:Vertex Input、Vertex Output、Sorting、Shuffing和Merging。
计算节点之间的数据通信被称为 Edge,这些分解后的元操作可以任意灵活组合,产生新的操作,这个操作经过组装之后,形成一个大的 DAG 作业。
除了以上6种组件,Tez 还提供了两种算子,分别是 Sort(排序)和 Shuffle(混洗),为了用户使用方便,它还提供了多种 Input、Output、Task 和 Sort 的实现。
使用 Hive 提交 Tez 任务,需先将 Hive 切换 Tez 为执行引擎:
hive.execution.engine
为 Tez,在右上角单击服务操作 > 重启按钮,重启 Hive 服务。执行以下命令,通过 beeline 连接 HiveServer2:
beeline -u jdbc:hive2://emr-master-1-1:10000 -n <user> -p <password>
说明
首次进入时,初始化账户密码,您可进入服务列表 > OpenLDAP 组件服务 > 服务参数界面,来获取 Hive 的登录信息。
连接 HiveServer2 后,您可根据实际场景执行相关 Hive 语句,示例如下:
0: jdbc:hive2://emr-master-1-1:10000> select orderkey,count(*) from lineitem group by orderkey limit 100;