美文网首页
Hive on Tez

Hive on Tez

作者: 珺王不早朝 | 来源:发表于2020-12-22 20:45 被阅读0次

Hortonworks 在2014年左右发布了 Stinger Initiative,并进行社区分享,为的是让 Hive 支持更多 SQL,并实现更好的性能。

  • 让 Hive 的查询功能更强大,增加类似 OVER 子句的分析功能,支持 WHERE 子查询
    调整 Hive 的样式系统使其更加符合标准的 SQL 模型
  • 优化 Hive 的请求执行计划,增加 Task 每秒处理记录的数量
  • 引入新的列式文件格式(ORC 文件),提供一种更现代、高效和高性能的方式来储存 Hive 数据
  • 引入新的 runtime 框架 --- Tez,消除 Hive 的延迟以及吞吐量限制
    Tez 通过消除不必要的 task、障碍同步和对 HDFS 的读写作业来优化 Hive job

1. Tez 概述

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 倍左右,情况不同效果不同。

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

Tez + Hive 仍采用 MapReduce 计算框架,但对 DAG 的作业依赖关系进行了裁剪,并将多个小作业合并成一个大作业,不仅减少了计算量,而且写 HDFS 次数也大大减少。

2. Tez 安装部署

  1. 下载软件包:apache-tez-0.9.2-bin.tar.gz
  2. 解压缩
tar -zxvf apache-tez-0.9.0-bin.tar.gz
cd apache-tez-0.9.0-bin/share
  1. 将tez的压缩包放到到 hdfs 上
hdfs dfs -mkdir -p /user/tez
hdfs dfs -put tez.tar.gz /user/tez
  1. $HADOOP_HOME/etc/hadoop/ 下创建 tez-site.xml 文件,做如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 指定在 hdfs上的 tez包文件 -->
    <property>
        <name>tez.lib.uris</name>
        <value>hdfs://centos7-1:9000/user/tez/tez.tar.gz</value>
    </property>
</configuration>

保存后将文件复制到集群所有节点

  1. 增加客户端节点的配置(/etc/profile)
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export TEZ_CONF_DIR=$HADOOP_CONF_DIR
export TEZ_JARS=/opt/apps/tez/*:/opt/apps/tez/lib/*
export HADOOP_CLASSPATH=$TEZ_CONF_DIR:$TEZ_JARS:$HADOOP_CLASSPATH
  1. Hive 设置 Tez 执行
hive> set hive.execution.engine=tez;
  1. 如果想默认使用 Tez,可在 $HIVE_HOME/conf 目录下 hive-site.xml 中增加
<property>
    <name>hive.execution.engine</name>
    <value>tez</value>
</property>

相关文章

  • Hive+LLap+Tez问题

    问题描述 使用Hive+LLap+Tez的方式执行hql,配置好hive.execution.engine=tez...

  • Hive on Tez 典型日志内容

    Hive on Tez 典型日志内容

  • Hive 入门

    Hive官网 Hive概述 Hive 的底层执行引擎有 :MapReduce,Tez,Spark- Hive on...

  • Hive on Spark配置

    1. Hive引擎简介 Hive引擎包括:默认MR、tez、sparkHive on Spark:Hive既作为存...

  • HIVE

    --------hive 数据仓库 hive底层执行引擎有 MapReduce Tez Spark 压缩 GZI...

  • Hive on Tez

    Hortonworks 在2014年左右发布了 Stinger Initiative,并进行社区分享,为的是让 H...

  • Hive on Tez 中 Map 任务的数量计算

    Hive on Tez 中的Mapper 数量计算 在Hive 中执行一个query时,我们可以发现Hive 的执...

  • hive on tez 步骤

    1.下载tez src 解压,修改pom.xml,将hadoop.version改为2.7.2,最好用非root用...

  • hive 使用tez

    1,编译tez 见https://www.jianshu.com/p/b2569796dd27 2,将 编译后的t...

  • Hive 设置

    beeline 方式设置mapreduce, tez参数出现错误 需要通过参数hive.security.auth...

网友评论

      本文标题:Hive on Tez

      本文链接:https://www.haomeiwen.com/subject/rhqenktx.html