Tez:修订间差异
跳到导航
跳到搜索
(创建页面,内容为“Tez 是支持 DAG 作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业,从而大幅提升 DAG 作业的性能。 Tez 源于 MapReduce 框架,核心思想是将 Map 和 Reduce 两个操作进一步拆分: # Map: Input、Processor、Sort、Merge、Output # Reduce: Input、Shuffle、Sort、Merge、Processor、Output <b>优点</b> # 避免中间数据写回 HDFS,减小任务执行时间 # vertex management 模块使 runt…”) |
|||
(未显示同一用户的5个中间版本) | |||
第13行: | 第13行: | ||
# Tez 与 Hive 捆绑,在其他领域应用较少 | # Tez 与 Hive 捆绑,在其他领域应用较少 | ||
# 社区不活跃 | # 社区不活跃 | ||
# | # 完全基于内存,如果数据量特别大(注:应该指的是结果集的数据量),容易 OOM | ||
一般用于快速出结果,结果集小的场景,如汇总查询等。 | |||
=== Inst === | === Inst === | ||
Hadoop 3.4.1/Hive 4.0.1/Tez 0.10.4 | |||
==== .bashrc ==== | ==== .bashrc ==== | ||
<small><nowiki># Tez | <small><nowiki># Tez | ||
第33行: | 第34行: | ||
==== mapred-site.xml ==== | ==== mapred-site.xml ==== | ||
<small><nowiki># $HADOOP_HOME/etc/hadoop/mapred-site.xml | <small><nowiki># $HADOOP_HOME/etc/hadoop/mapred-site.xml | ||
# $HADOOP_HOME | # $HADOOP_HOME/sbin/start-yarn.sh | ||
<configuration> | <configuration> | ||
<property> | <property> | ||
<name>mapreduce.framework.name</name> | <name>mapreduce.framework.name</name> | ||
<value>yarn-tez</value> | <value>yarn-tez</value> | ||
</property> | |||
<property> | |||
<name>mapreduce.job.counters.max</name> | |||
<value>1000</value> | |||
</property> | </property> | ||
</configuration></nowiki></small> | </configuration></nowiki></small> | ||
第43行: | 第48行: | ||
=== Hive === | === Hive === | ||
==== engine ==== | ==== engine ==== | ||
(Hadoop 3.4.1/Hive 4.0.1 & Iceberg 1.4.3/Tez 0.10.4) 使用 MR 引擎,向 iceberg 表插入数据,不报错但无数据。换用 Tez 正常。但上述版本,SQL 查询正常,Load Data to Hive 正常,Insert 数据 MR 引擎 OK,Tez 报错。 | |||
<small><nowiki>set hive.execution.engine = tez; | <small><nowiki>set hive.execution.engine = tez; | ||
set hive.execution.engine = mr;</nowiki></small> | set hive.execution.engine = mr;</nowiki></small> | ||
# $HIVE_HOME/conf/hive-site.xml | |||
<property> | |||
<name>hive.execution.engine</name> | |||
<value>tez</value> | |||
</property> | |||
==== Sample ==== | ==== Sample ==== |
2024年12月25日 (三) 15:18的最新版本
Tez 是支持 DAG 作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业,从而大幅提升 DAG 作业的性能。
Tez 源于 MapReduce 框架,核心思想是将 Map 和 Reduce 两个操作进一步拆分:
- Map: Input、Processor、Sort、Merge、Output
- Reduce: Input、Shuffle、Sort、Merge、Processor、Output
优点
- 避免中间数据写回 HDFS,减小任务执行时间
- vertex management 模块使 runtime 动态修改执行计划变成可能
- input/processor/output 编程模型,大大提高了任务模型的灵活性
- 提供 container 复用机制与 Tez Session,减少资源消耗
缺点
- Tez 与 Hive 捆绑,在其他领域应用较少
- 社区不活跃
- 完全基于内存,如果数据量特别大(注:应该指的是结果集的数据量),容易 OOM
一般用于快速出结果,结果集小的场景,如汇总查询等。
Inst
Hadoop 3.4.1/Hive 4.0.1/Tez 0.10.4
.bashrc
# Tez export TEZ_HOME=/opt/tez export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/*:$TEZ_HOME/lib/*
tez-site.xml
# $TEZ_HOME/conf/tez-site.xml <configuration> <property> <name>tez.lib.uris</name> <value>hdfs://192.168.0.249:9000/user/tez/tez.tar.gz</value> </property> </configuration>
mapred-site.xml
# $HADOOP_HOME/etc/hadoop/mapred-site.xml # $HADOOP_HOME/sbin/start-yarn.sh <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn-tez</value> </property> <property> <name>mapreduce.job.counters.max</name> <value>1000</value> </property> </configuration>
Hive
engine
(Hadoop 3.4.1/Hive 4.0.1 & Iceberg 1.4.3/Tez 0.10.4) 使用 MR 引擎,向 iceberg 表插入数据,不报错但无数据。换用 Tez 正常。但上述版本,SQL 查询正常,Load Data to Hive 正常,Insert 数据 MR 引擎 OK,Tez 报错。
set hive.execution.engine = tez; set hive.execution.engine = mr;
# $HIVE_HOME/conf/hive-site.xml <property> <name>hive.execution.engine</name> <value>tez</value> </property>
Sample
beeline -u jdbc:hive2://192.168.0.249:10000/ -n hdfs ## CSV 格式:空格分隔,含特殊字符的字符串用双引号 # ID-1000012 "77132693" "IBM x688" "xeron x5 3708" "INTER-64G" ## Create CREATE TABLE test1 ( col1 STRING, col2 INT, col3 STRING, col4 STRING, col5 STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar" = " ", "quoteChar" = "\"", "serialization.encoding"="UTF-8" ) STORED AS TEXTFILE; ## Load LOAD DATA INPATH '/tmp/data/test1.csv' OVERWRITE INTO TABLE test1; ## Query set hive.execution.engine = mr; select col4, count(*) cs from test1 group by col4 limit 10; +----------------+-----------+ | col4 | cs | +----------------+-----------+ | xeron x5 3708 | 40075712 | +----------------+-----------+ 1 row selected (102.087 seconds) set hive.execution.engine = tez; select col4, count(*) cs from test1 group by col4 limit 10; +----------------+-----------+ | col4 | cs | +----------------+-----------+ | xeron x5 3708 | 40075712 | +----------------+-----------+ 1 row selected (135.789 seconds) vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 13 8 0 193184 2096 6090004 0 0 2 27 3 20 2 1 97 0 0 19 1 0 170348 2096 6107060 0 0 16804 70 10260 13559 55 9 2 33 0 4 5 0 411680 2096 6080720 0 0 21696 970 9404 12037 57 13 16 15 0 18 4 0 388096 2096 6109332 0 0 28224 86 5808 7769 36 12 9 43 0 0 1 0 377496 2096 6115656 0 0 6368 177 5455 8271 25 9 46 21 0