Tez使用说明
更新时间 2026-10-12 11:42:31
最近更新时间: 2026-10-12 11:42:31
本章节介绍Tez服务基础使用。
Tez 作业提交方式
Tez 作业由上层计算组件(如启用 Tez 引擎的 SQL 组件、基于 Tez API 开发的应用等)编译生成 DAG 并提交至 YARN,用户一般无需直接操作 DAG。集群提供 Tez 示例程序,可用于验证 Tez 服务是否正常,示例如下(输入输出路径请替换为实际路径):
hdfs dfs -mkdir /tmp/tez-input
hdfs dfs -put $TEZ_HOME/LINCENSE /tmp/tez-input
hadoop jar $TEZ_HOME/tez-examples-*.jar orderedwordcount /tmp/tez-input /tmp/tez-output/tmp/tez-output 为输出路径,该目录必须不存在,否则作业会因 Output directory already exists 而失败。执行前可先清理:hdfs dfs -rm -r /tmp/tez-output
执行成功后,可通过yarn application -list 查看 application 状态为 FINISHED,并通过 TezUI 查看 DAG 执行详情。
说明
示例程序orderedwordcount 会提交一个包含两个顶点的 DAG,用于统计输入文本中单词的出现次数并按次数排序。
配置说明
Tez 的服务端与客户端配置文件为 tez-site.xml(位于 Tez 安装目录 conf 下),常用参数如下表所示,用户级参数可在作业提交时覆盖:
| 参数名称 | 默认值 | 参数说明 |
|---|---|---|
| tez.am.resource.memory.mb | 1024 | DAGAppMaster 申请的容器内存大小(MB) |
| tez.am.resource.cpu.vcores | 1 | DAGAppMaster 申请的容器核数 |
| tez.am.launch.cmd-opts | -Xmx812m | DAGAppMaster 的 JVM 启动参数,堆内存建议为容器内存的80%左右 |
| tez.am.container.reuse.enabled | true | 是否开启容器重用,开启后任务间复用容器,减少启停开销 |
| tez.am.container.reuse.rack-fallback.enabled | true | 容器重用时是否允许机架降级分配 |
| tez.am.container.reuse.non-local-fallback.enabled | false | 容器重用时是否允许非本地分配,开启前需评估网络开销 |
| tez.am.max.app.attempts | 2 | AM 失败后的最大重试次数 |
| tez.am.log.level | INFO | AM 日志级别 |
| tez.container.max.java.heap.fraction | 0.8 | 任务容器内JVM 堆内存占容器内存的比例 |
| tez.runtime.io.sort.mb | 100 | 任务排序缓冲区大小(MB) |
| tez.runtime.io.sort.factor | 100 | 排序合并时的文件流数量 |
| tez.local.mode | false | 是否开启本地模式,开启后不经过YARN 调度,仅用于小数据量调试 |
| tez.lib.uris | 无 | Tez 依赖包在 HDFS 上的地址,作业启动时按此拉取运行环境 |
| tez.queue-name | default | 作业提交的YARN 队列名称 |
与YARN 队列配合
Tez 作业运行在 YARN 队列上,队列决定了作业可用的 CPU、内存与并发度。作业需要指定队列时,可通过参数 tez.queue.name 设置,例如:
hdfs dfs -mkdir /tmp/tez-input
hdfs dfs -put $TEZ_HOME/LINCENSE /tmp/tez-input
hadoop jar $TEZ_HOME/tez-examples-*.jar orderedwordcount -Dtez.queue.name=xxx /tmp/tez-input /tmp/tez-output/tmp/tez-output 为输出路径,该目录必须不存在,否则作业会因 Output directory already exists 而失败。执行前可先清理:hdfs dfs -rm -r /tmp/tez-output
注意
队列资源不足时作业会长时间处于ACCEPTED 状态排队,请根据集群队列规划选择合适的队列。