配置 Tez
您可以使用 tez-site 配置分类设置值来自定义 Tez,该配置分类将配置 tez-site.xml 配置文件中的设置。有关更多信息,请参阅 Apache Tez 文档中的 TezConfigurationhive-site 和 pig-properties 配置分类。示例如下。
示例配置
例 示例:自定义 Tez 根日志记录级别,并将 Tez 设置为 Hive 和 Pig 的执行引擎
下面显示的 create-cluster 命令将创建一个安装了 Tez、Hive 和 Pig 的集群。该命令引用存储在 Amazon S3 中的文件 myConfig.json,该文件为将 tez.am.log.level 设置为 DEBUG 的 tez-site 分类指定属性,以及将执行引擎设置为 Tez,以便 Hive 和 Pig 使用 hive-site 和 pig-properties 配置分类。
注意
为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号(^)。
aws emr create-cluster --release-labelemr-7.10.0\ --applications Name=Tez Name=Hive Name=Pig --ec2-attributes KeyName=myKey\ --instance-type m5.xlarge --instance-count 3 \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json --use-default-roles
下面显示的是 myConfig.json 的内容示例。
[ { "Classification": "tez-site", "Properties": { "tez.am.log.level": "DEBUG" } }, { "Classification": "hive-site", "Properties": { "hive.execution.engine": "tez" } }, { "Classification": "pig-properties", "Properties": { "exectype": "tez" } } ]
注意
对于 Amazon EMR 5.21.0 及更高版本,您可以覆盖集群配置,并为运行的集群中的每个实例组指定额外的配置分类。要完成此操作,您可以使用 Amazon EMR 控制台、Amazon Command Line Interface(Amazon CLI)或 Amazon SDK。有关更多信息,请参阅为运行的集群中的实例组提供配置。
Tez 异步拆分打开
当表路径中有大量小文件并且查询尝试读取所有文件时,与每个单独拆分相对应的每个小文件将合并在一个 Tez 分组拆分下。然后,单个映射器将处理单个 Tez 分组拆分。由于执行是同步的,因此分组拆分下的每个单独拆分都将逐一得到处理。这就要求 RecordReader 对象同步处理各个拆分。
Amazon EMR 6.15.0 引入了配置,您可以指定这些配置来异步打开 Tez 分组拆分中的输入拆分。该功能由 TEZ-4397
| 名称 | 分类 | 描述 |
|---|---|---|
|
|
|
指定 Tez 用于预启动 |
|
|
|
指定要由进程守护程序线程保持预初始化 |
配置备注:
| 主题专家 | 详细信息 |
|---|---|
建议的配置设置 |
建议在 |
匹配值 |
|
LLAP 建议 |
启用 LLAP 时,不建议使用此功能。 |
Tez 异步拆分打开的基准测试
我们已使用以下环境和配置对 Tez 异步拆分打开功能进行了基准测试:
-
基准环境 – Amazon EMR 集群,有 1 个使用 m5.16xlarge 的主节点,16 个使用 m5.16xlarge 的核心节点。
-
基准配置 – 要模拟单个 Tez 分组拆分中存在大量输入拆分的基准测试场景,
tez.grouping.split-count设置为1。 -
用于基准测试的表 – 该表包含 200 个分区,其中每个分区包含一个文件。基准测试在该表包含 CSV 文件时以及该表包含 parquet 文件时进行。Hive 查询基准测试:从表中
SELECT COUNT(*)十次,取平均运行时间。 -
启用 Tez 异步拆分打开的配置 – 如下所示:
-
tez.grouping.split.init.threads=4 -
tez.grouping.split.init.recordreaders=10
-
| 数据集 | 功能已禁用(基线) | 功能已启用 | 改进 |
|---|---|---|---|
|
CSV 数据集 |
90.26 秒 |
79.20 秒 |
12.25% |
|
Parquet 数据集 |
54.67 秒 |
42.23 秒 |
22.75% |