hive on tez

hive运行模式

  1. hive on mapreduce 离线计算(默认)
  2. hive on tez   YARN之上支持DAG作业的计算框架
  3. hive on spark 内存计算

hive on tez

Tez是一个构建于YARN之上的支持复杂的DAG任务的数据处理框架。它由Hontonworks开源,它把mapreduce的过程拆分成若干个子过程,同时可以把多个mapreduce任务组合成一个较大的DAG任务,减少了mapreduce之间的文件存储,同时合理组合其子过程从而大幅提升MapReduce作业的性能。

安装tez

tez的安装有源码安装和二进制包安装,这里使用二进制包安装。

hadoop版本:2.9.1

hive版本:2.1.1

tez版本:0.9.0

前提:hadoop环境已经搭建好,包括yarn(tez需要运行在yarn上)、hive

下载

wget http://mirror.bit.edu.cn/apache/tez/0.9.0/apache-tez-0.9.0-bin.tar.gz

安装

# tar zxvf apache-tez-0.9.0-bin.tar.gz# mv apache-tez-0.9.0-bin/ tez-0.9.0# hdfs dfs -mkdir -p /tez-0.9.0# cd /tez-0.9.0/# hdfs dfs -put share/tez.tar.gz /tez-0.9.0

配置tez

# cd /data1/hadoop/hadoop/etc/hadoop/# cat tez-site.xml

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<property>

<name>tez.lib.uris</name>

<value>${fs.defaultFS}/apps/tez-0.9.0/tez.tar.gz</value>

</property>

<property>

<name>tez.container.max.java.heap.fraction</name>

<value>0.2</value>

</property>

</configuration>

参考:/tez-0.9.0/conf/tez-default-template.xml

环境变量配置(~/.bashrc)

添加如下配置
export TEZ_CONF_DIR=$HADOOP_CONF_DIR

export TEZ_JARS=/tez-0.9.0/*:/tez-0.9.0/lib/*

export HADOOP_CLASSPATH=$TEZ_CONF_DIR:$TEZ_JARS:$HADOOP_CLASSPATH

执行"source ~/.bashrc"让环境变量生效。

hadoop版本兼容问题

[[email protected] ~]# cd /tez-0.9.0/lib

[[email protected] lib]# rm -rf hadoop-mapreduce-client-core-2.7.0.jar hadoop-mapreduce-client-common-2.7.0.jar

 

[[email protected] lib]# cp /data1/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.9.1.jar /tez-0.9.0/lib/

[[email protected] lib]# cp /data1/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.9.1.jar /tez-0.9.0/lib/

启动hive

#hivehive> SET hive.execution.engine=tez;  设置执行引擎为tez,默认是MapReduce

测试数据

创建表hive> create table user_info(user_id bigint, firstname string, lastname string, count string);插入数据hive> insert into user_info values(1,‘dennis‘,‘hu‘,‘CN‘),(2,‘Json‘,‘Lv‘,‘Jpn‘),(3,‘Mike‘,‘Lu‘,‘USA‘);

Query ID = root_20190618043047_bfc41253-60f9-469d-b6a9-c26c93a92e82
Total jobs = 1
Launching Job 1 out of 1
Tez session was closed. Reopening...
Session re-established.

Status: Running (Executing on YARN cluster with App id application_1560826244680_0015)

----------------------------------------------------------------------------------------------
VERTICES MODE STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED
----------------------------------------------------------------------------------------------
Map 1 .......... container SUCCEEDED 1 1 0 0 0 0
----------------------------------------------------------------------------------------------
VERTICES: 01/01 [==========================>>] 100% ELAPSED TIME: 4.55 s
----------------------------------------------------------------------------------------------
Loading data to table default.user_info
OK
Time taken: 9.488 seconds

查询

> select count(1) from user_info;
Query ID = root_20190618043342_5f83efb4-39bf-4d67-bac4-d67205086ae7
Total jobs = 1
Launching Job 1 out of 1

Status: Running (Executing on YARN cluster with App id application_1560826244680_0015)

----------------------------------------------------------------------------------------------
VERTICES MODE STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED
----------------------------------------------------------------------------------------------
Map 1 .......... container SUCCEEDED 1 1 0 0 0 0
Reducer 2 ...... container SUCCEEDED 1 1 0 0 0 0
----------------------------------------------------------------------------------------------
VERTICES: 02/02 [==========================>>] 100% ELAPSED TIME: 4.46 s
----------------------------------------------------------------------------------------------
OK
9
Time taken: 4.979 seconds, Fetched: 1 row(s)
hive> select count(1) from user_info;
Query ID = root_20190618043349_ecee5657-7c95-43ab-80e9-101dd36d6fc7
Total jobs = 1
Launching Job 1 out of 1

Status: Running (Executing on YARN cluster with App id application_1560826244680_0015)

----------------------------------------------------------------------------------------------
VERTICES MODE STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED
----------------------------------------------------------------------------------------------
Map 1 .......... container SUCCEEDED 1 1 0 0 0 0
Reducer 2 ...... container SUCCEEDED 1 1 0 0 0 0
----------------------------------------------------------------------------------------------
VERTICES: 02/02 [==========================>>] 100% ELAPSED TIME: 0.72 s
----------------------------------------------------------------------------------------------
OK
9
Time taken: 1.156 seconds, Fetched: 1 row(s)

yarn web界面查看

由此可看出,引擎类型变成TEZ。

原文地址:https://www.cnblogs.com/yjt1993/p/11044578.html

时间: 2024-10-13 05:10:31

hive on tez的相关文章

hive on tez踩坑记2-hive0.14 on tez

在测试hive0.14.0 on tez时遇到的问题比较多:1.在使用cdh5.2.0+hive0.14.0+tez-0.5.0测试时,首先遇到下面的问题 java.lang.NoSuchMethodError: org.apache.tez.dag.api.client.Progress.getFailedTaskAttemptCount()I         at org.apache.hadoop.hive.ql.exec.tez.TezJobMonitor.printStatusInPl

hive on tez踩坑记1-hive0.13 on tez

最近集群准备升级到cdh5.2.0,并使用tez,在测试集群cdh5.2.0已经稳定运行了很长时间,因此开始折腾hive on tez了,期间遇到不少问题,这里记录下. hive on tez的部署比较简单,可以参考wiki.主要注意几个地方 1.编译的时候 mvn clean package -Dtar -DskipTests=true -Dmaven.javadoc.skip=true 2.需要将tez相关的包upload到hdfs中,并设置tez-site.xml   <property>

hive on tez配置

1.Tez简介 Tez是Hontonworks开源的支持DAG作业的计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升MapReduce作业的性能.Tez并不直接面向最终用户--事实上它允许开发者为最终用户构建性能更快.扩展性更好的应用程序 2.编译tez 本文记录Tez 0.8.5的编译过程,之前的Tez版本都是源码包,最新的版本虽然提供了编译后的tar包,但是大部分情况下是针对特定的Hadoop版本,如果和我们的Hadoop版本不一致,可能某个时刻会出现一些未知的问题,所以为了稳定

配置 Hive On Tez

配置 Hive On Tez 标签(空格分隔): hive Tez 部署底层应用 简单介绍 介绍:tez 是基于hive 之上,可以将sql翻译解析成DAG计算的引擎.基于DAG 与mr 架构本身的优缺点,tez 本身经过测试一般小任务在hive mr 的2-3倍速度左右,大任务7-10倍左右,根据情况不同可能不一样. 对于 Tez-0.9.0 以及更高版本, Tez 需要 Apache Hadoop 版本为 2.7.0 或更高 安装 Apache Hadoop 2.7.0 或更高版本,这里选取

hive on tez 错误记录

1.执行过程失败,报 Container killed on request. Exit code is 143 如下图: 分析:造成这种原因是由于总内存不多,而容器在jvm中占比过高,修改tez-site.xml文件,添加如下配置: <property> <name>tez.container.max.java.heap.fraction</name> <value>0.2</value> #调低内存占比,默认是0.8(也就是80%) <

hive on tez sql 优化

select t.id end_usr_id, t.end_user_name end_usr_name, t.end_user_real_name end_usr_nknm, t.end_user_password end_usr_pswd, t.end_user_birthday end_usr_bthd, t.mobile mobl_num, t.phone phone_num, t.valid_mobile_phone_num bindg_mobl_num, t.end_user_ema

Hive 使用Tez引擎的配置

前提 Hive  需要是 2.0以上版本 Tez配置 下载好tar包后,将tar包上传到HDFS集群路径下 hadoop fs -put /opt/software/apache-tez-0.9.1-bin.tar.gz/ /tez 将Linux本机上的tar包解压 Hive配置 在hive/conf下新建tez-site.xml文件,并添加以下参数 <?xml version="1.0" encoding="UTF-8"?> <?xml-styl

Hive on Tez 出现的bug 及原因解析

现象描述 在使用Tez引擎查询时,发现一个bug: SELECT t1.*,t2.activity_id,t3.timeMap from (select * from ods_order_info where dt='2020-03-29') t1 --单独查询结果为7条 left join (select order_id,activity_id from ods_activity_order where dt='2020-03-29') t2 --t1 与t2 left join ,结果为7

记一发Hive on tez的配置(Hive 3.1.1, Hadoop 3.0.3, Tez 0.9.1)

直接下载Tez的binary包部署安装是有问题的,因为默认支持hadoop版本为2.7,2.7以上的就需要手动编译了. 下载Tez源码 CD到源码文件夹,mvn install -Dhadoop.version=3.0.3 -DskipTests -Dmaven.javadoc.skip=true 这里有个需要注意的地方,tez-ui的编译会很麻烦,因为伟大的墙.实在编译不过就跳过tez-ui模块吧--不影响其他部分的编译. 编译成功后,后面的步骤参考:https://blog.csdn.net