Hortonworks 在2014年左右发布了 Stinger Initiative,并进行社区分享,为的是让 Hive 支持更多 SQL,并实现更好的性能。
Tez 是 Apache 开源的支持 DAG(有向无环图) 作业的计算框架,是支持 Hadoop 2.x 的重要引擎。它源于 MapReduce 框架,核心思想是将 Map 和 Reduce 两个操作进一步拆分,分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的 DAG 作业。
Tez 将 Map task 和 Reduce task 进一步拆分为如下图所示:
Tez 的 task 由 Input、processor、output 阶段组成,可以表达所有复杂的 map、reduce 操作,如下图:
Tez 可以将多个有依赖的作业转换为一个作业(只需写一次 HDFS,中间环节较少),从而大大提升 DAG 作业的性能。Tez 已被 Hortonworks 用于 Hive 引擎的优化,经测试一般小任务比 Hive MR 的 2-3 倍速度左右,大任务 7-10 倍左右,情况不同效果不同。
Tez + Hive 仍采用 MapReduce 计算框架,但对 DAG 的作业依赖关系进行了裁剪,并将多个小作业合并成一个大作业,不仅减少了计算量,而且写 HDFS 次数也大大减少。
保存后将文件复制到集群所有节点