当前位置: 首页 > news >正文

Hive on Tez 的安装配置

Hive on Tez 的安装配置

文章目录

  • Hive on Tez 的安装配置
    • 0. 写在前面
    • 1. 起源
    • 2. Tez概述
    • 3. 安装部署
    • 4. 解决日志Jar包冲突


在这里插入图片描述


0. 写在前面

  • Hadoop:Hadoop-2.9.2
  • Hive:Hive-2.3.7
  • Tez:Tez-0.9.0

1. 起源

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

  • 让Hive的查询功能更强大。增加类似OVER子句的分析功能,支持WHERE子查询,以及调整Hive的样式系统更多的符合标准的SQL模型;

  • 优化Hive的请求执行计划,增加 Task 每秒处理记录的数量;

  • 引入新的列式文件格式(ORC文件),提供一种更现代、高效和高性能的方式来储存Hive数据;

  • 引入新的runtime框架——Tez,消除Hive的延迟以及吞吐量限制。Tez通过消除不必要的task、障碍同步和对HDFS的读写作业来优化Hive job;

2. 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次数也大大减少

3. 安装部署

前置芝士

官方推荐使用 Tez 和包中包含的预打包 Hadoop 库 的安装方式。包含所有依赖项的完整 tarball 是确保现有作业在集群滚动升级期间继续运行的更好方法。

安装

  • 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
  • 3、将tez的压缩包放到hdfs上
hdfs dfs -mkdir -p /user/tez
hdfs dfs -put tez.tar.gz /user/tez
  • 4、$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://hadoop1:9000/user/tez/tez.tar.gz</value>
  </property>
</configuration>

保存后将文件分发到集群所有节点

  • 5、增加客户端节点的配置(/etc/profile)
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
  • 6、Hive设置Tez执行
hive> set hive.execution.engine=tez;

在这里插入图片描述

  • 7、如果想默认使用Tez,可在$HIVE_HOME/conf目录下hive-site.xml中增加
<property>
  <name>hive.execution.engine</name>
  <value>tez</value>
</property>

4. 解决日志Jar包冲突

rm /opt/apps/tez/lib/slf4j-log4j12-1.7.10.jar

相关文章:

  • 05 关于局部变量名字的存储
  • java毕业设计教程SSM框架实现的车位租赁管理系统|停车场计费系统[包运行成功]
  • 微雪树莓派PICO笔记——7. SPI(串行外设接口)
  • 真正理解Java中的异步
  • 《Unity3D脚本编程与游戏开发》学习Day one
  • JavaScript:JavaScript编程语言学习之前端框架(VUE)架构(MVVM)的简介、案例应用之详细攻略
  • [Python]闭包
  • 《C++程序设计原理与实践》笔记 第5章 错误
  • 静息态fMRI方法在脑动力学表征上的比较
  • LabVIEW自动整理程序框图
  • 拨测API接口+监控方案
  • 第一性原理详解
  • 信息化转型?数字化转型?企业到底该如何选择
  • ES6的Class继承--super关键字
  • Linux 简单命令 - find -grep命令深入学习
  • EventListener原理
  • GraphQL学习过程应该是这样的
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • magento2项目上线注意事项
  • Node项目之评分系统(二)- 数据库设计
  • October CMS - 快速入门 9 Images And Galleries
  • quasar-framework cnodejs社区
  • Spring Cloud Feign的两种使用姿势
  • Web标准制定过程
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 从重复到重用
  • 搭建gitbook 和 访问权限认证
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 设计模式(12)迭代器模式(讲解+应用)
  • 微信小程序:实现悬浮返回和分享按钮
  • 写代码的正确姿势
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #控制台大学课堂点名问题_课堂随机点名
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (二)Linux——Linux常用指令
  • (附源码)计算机毕业设计高校学生选课系统
  • (生成器)yield与(迭代器)generator
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • .htaccess配置重写url引擎
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net实现客户区延伸至至非客户区
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @Responsebody与@RequestBody
  • @WebService和@WebMethod注解的用法
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • []我的函数库
  • [20161214]如何确定dbid.txt
  • [20190113]四校联考
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [CSS] 点击事件触发的动画