———————————————————— 调配 Hadoop  ————————————————————

1 将 编译好的 TEZ .tar.gz 文件上传到 HDFS 中。
 
hdfs fs -put complete-tez-0.7.0.tar.gz /tez
 

2 创建 tez-site.xml

需要在 hadoop 的 master 节点上面的 ${HADOOP_HOME}/etc/hadoop 目录下面创建一个 tez-site.xml 文件,里面填写如下内容

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>tez.lib.uris</name>
<value>/tez/tez-0.7.0</value>
<name>tez.lib.uris</name>
<value>hdfs://t1:9000/tez/tez-0.8.2.tar.gz</value>
</property>
</configuration>
 
3 修改 hadoop-2.6.0/etc/hadoop/hadoop-env.sh 
 
export TEZ_HOME=/usr/local/opt/tez-0.7.0
          for jar in `ls $TEZ_HOME |grep jar`; do
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar
 done
           for jar in `ls $TEZ_HOME/lib`; do
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar
 done
 
 

以上完成了tez的基本配置,接下来有 2 中方法使我们的任务运行在tez上,一种修改

 mapreduce-site.xml 设置 yarn  改为 yarn-tez

第二种,修改 hive 直接运行在 tez 上

 

第三种  hive set tez

 
———————————————————— hive on tez (单个 job 运行 Tez) ————————————————————
1 将编译好的 tez(编译成功的包会放在tez-dist/target )所有jar 包放入 hive下。
     find . -name "*jar" -print | cp -a `xargs` tezlib/ 
上面命令得到 tez 所有jar 包。
2  hive on tez 的使用方式 配置好以后 进入 hive
  1. hive (default)>set hive.execution.engine=tez;
  2. set hive.execution.engine=mr 或 退出 hive 即可
   3 如果 hive set tez 后运行异常可以启用调试模式启动hive (linux 下进入 hive 启动模式)
 
              hive -hiveconf hive.root.logger=DEBUG,console 
—————————————————— Hive on tez 性能测试——————————————————
性能测试:
select a.sex ,b.age , c.* from a join b on a.sex = b.sex join c on a.id ;
 
3表 各1万 / 169kb  
Hive on MapReduce
39分钟 = =!
 

hive on tez
25分钟  (未发挥最佳性能,因为数据量大量的 IO 都是拉取。并无多 MR)
set hive.execution.engine=tez;

实验 a 164M b 164M c 1.7G d 164M, e 164M
————————————————   hive on MR 3 分 9 秒  ————————————————

————————————————  hive on tez 22.5 秒  ————————————————

———————————————————— hive on tez (所有 job 运行 Tez) ————————————————————

Tez部署完毕后,下载hive0.14.0的二进制文件,解压即可。然后在hive的conf目录下新建hive-site.xml进行常规的配置,如果要是此hive运行在tez上,可以在配置文件中加上:

<property>

<name>mapreduce.framework.name</name>

<value>yarn-tez</value>

</property>

当然这个配置也能加在mapsite.xml里,建议加在需要hive-site.xml以不影响集群其他hive。

然后打开命令行,首先执行set hive.execution.engine=tez; 这里说下这个配置的含义,

Setting execution engine to mr and framework name to yarn = Hive compiles to MR and runs on MR.

Setting execution engine to mr and framework name to yarn-tez = Hive compiles to MR and runs on Tez.

Setting execution engine to tez = Hive compiles to Tez and runs on Tez.

 

Apache Tez on hive的更多相关文章

  1. Apache Tez 了解

    你可能听说过Apache Tez,它是一个针对Hadoop数据处理应用程序的新分布式执行框架.但是它到底是什么呢?它的工作原理是什么?哪些人应该使用它,为什么?如果你有这些疑问,那么可以看一下Bika ...

  2. Apache Tez Design

    http://tez.incubator.apache.org/ http://dongxicheng.org/mapreduce-nextgen/apache-tez/ http://dongxic ...

  3. Apache Hudi 与 Hive 集成手册

    1. Hudi表对应的Hive外部表介绍 Hudi源表对应一份HDFS数据,可以通过Spark,Flink 组件或者Hudi客户端将Hudi表的数据映射为Hive外部表,基于该外部表, Hive可以方 ...

  4. CentOS 6.5 Maven 编译 Apache Tez 0.8.3 踩坑/报错解决记录

    最近准备学习使用Tez,因此从官网下载了最新的Tez 0.8.3源码,按照安装教程编译使用.平时使用的集群环境是离线的,本打算这一次也进行离线编译,无奈一编译就开始报缺少jar包的错,即使手动下载ja ...

  5. Caused by: java.sql.SQLException: Failed to start database 'metastore_db' with class loader org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1@d7c365, see the next exception for details.

    解决方法:https://stackoverflow.com/questions/37442910/spark-shell-startup-errors 异常: 18/01/29 19:04:27 W ...

  6. Apache ranger整合hive报错记录

    版本信息如下: hadoop2.9.2 hive 2.x ranger 最新版2.1.0 在hive端部署完ranger 插件以后,在使用beeline连接查询数据库时报错,报错信息如下: verbo ...

  7. local模式运行spark-shell时报错 java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState':

    先前在local模式下,什么都不做修改直接运行./spark-shell 运行什么问题都没有,然后配置过在HADOOP yarn上运行,之后再在local模式下运行出现以下错误: java.lang. ...

  8. Apache Tez 0.7、0.83、 0.82 安装、调试笔记

    ———————————————————— 准备 Tez 编译环境 ———————————————————— 1 需要的支持 tez0.7 需要 Hadoop 2.60 以上 2 需要的 linux 相 ...

  9. apache开源项目--HIVE

    Hive是一个基于Hadoop的数据仓库平台.通过hive,我们可以方便地进行ETL的工作.hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序基 ...

随机推荐

  1. spring中的单例和多例

    单例 对象在整个系统中只有一份,所有的请求都用一个对象来处理,如service和dao层的对象一般是单例的. 为什么使用单例:因为没有必要每个请求都新建一个对象的时候,浪费CPU和内存. 多例 对象在 ...

  2. 这个过人真是NB

  3. wcf的Contract中name的使用

    name可以自定义,Contract中的name会更改soap消息中的名称,虽然不影响在服务端代码中的使用 可以看到,在后台代码中使用函数的重用进行编写代码是非常方便的

  4. Python Study (01) 之 特殊方法

    Python深入:特殊方法和多范式 Python是一切皆对象,意思就是python的天生就是个"纯面向对象语言"呀. 但是!!! Python还是一个多范式语言(multi-par ...

  5. UVA 12124 UVAlive 3971 Assemble(二分 + 贪心)

    先从中找出性能最好的那个数, 在用钱比較少的去组合,能组出来就表明答案在mid的右边,反之在左边, #include<string.h> #include<map> #incl ...

  6. android Service中多线程交互

    android 的service和activity是执行在UI主线程的. 在android线程中,仅仅有主线程即UI线程有自己的默认的消息队列.子线程须要创建自己的消息队列.并把消息发给队列,并循环起 ...

  7. cocos2dx3.2 android平台搭建开发环境纠错备忘录

    平台:win32 + android cocos2d版本号:3.2 搭建cocos2d-x android 常见问题: 问题1: Android platform not specified, sea ...

  8. C9---include,编译

    //main.c //include基本概念 //include是预处理指令,翻译之前会替换,编译之前左的处理,#都是预处理指令,翻译时候会添加别的内容进来. #include <stdio.h ...

  9. 17.UNP第一章 简介

    获取时间的客户端代码: //客户端程序 #include "unp.h" int main(int argc, char **argv) { int sockfd, n; ]; s ...

  10. UIimageView和UIimage的小区别

    UIimageView 用来显示一张图片或者显示一组动画图片 UIimage        不是一个控件,只是一个普通的类,用来生成一张图片,只单纯的生成一张图片,图片只会被加载到内存,如果想要让用户 ...