

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration de Tez
<a name="tez-configure"></a>

Vous pouvez personnaliser Tez en définissant des valeurs à l'aide de la classification de configuration `tez-site`, qui configure les paramètres dans le fichier de configuration `tez-site.xml`. Pour plus d'informations, consultez [TezConfiguration](https://tez.apache.org/releases/0.8.2/tez-api-javadocs/configs/TezConfiguration.html)la documentation d'Apache Tez. Pour modifier Hive ou Pig afin d'utiliser le moteur d'exécution Tez, utilisez les classifications de configuration `hive-site` et `pig-properties` correspondantes. Des exemples sont présentés ci-après.

## Exemple de configuration
<a name="tez-configure-example"></a>

**Example Exemple : Personnalisation du niveau d'enregistrement racine de Tez et Configuration de Tez comme moteur d'exécution pour Hive et Pig**  
L'exemple de commande `create-cluster` ci-dessous crée un cluster avec Tez, Hive et Pig installés. La commande fait référence à un fichier stocké dans Amazon S3, `myConfig.json`, qui spécifie les propriétés pour la classification `tez-site` qui définit `tez.am.log.level` sur `DEBUG` et définit le moteur d'exécution Tez pour Hive et Pig en utilisant les classifications de configuration `hive-site` et `pig-properties`.  
Les caractères de continuation de ligne Linux (\$1) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

```
aws emr create-cluster --release-label emr-7.12.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
```
Vous trouverez ci-dessous des exemples de contenus `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"
      }
    }
  ]
```

**Note**  
Avec la version 5.21.0 et ultérieures d'Amazon EMR, vous permet de remplacer les configurations de cluster et de spécifier des classifications de configuration supplémentaires pour chaque groupe d'instances dans un cluster en cours d'exécution. Pour ce faire, utilisez la console Amazon EMR, le AWS Command Line Interface (AWS CLI) ou le AWS SDK. Pour plus d'informations, consultez [Fourniture d'une configuration pour un groupe d'instances dans un cluster en cours d'exécution](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

## Ouverture fractionnée asynchrone Tez
<a name="tez-configure-async"></a>

Lorsque le chemin de la table contient un grand nombre de petits fichiers et qu’une requête tente de tous les lire, chaque petit fichier correspondant à chaque division est combiné en une *unité de fractionnement groupée* Tez. Un seul mappeur traite ensuite la division groupée unique Tez. Puisque l’exécution est synchrone, chaque division de la division groupée est traitée une par une. Les objets `RecordReader` doivent donc traiter les divisions de manière synchrone.

Amazon EMR 6.15.0 introduit des configurations que vous pouvez spécifier pour ouvrir de manière asynchrone les divisions d'entrée dans une division groupée Tez. La fonctionnalité a été initiée par [TEZ-4397](https://issues.apache.org/jira/browse/TEZ-4397), mais a connu des régressions dans OSS Hive. EMR Hive a corrigé les régressions et les bogues supplémentaires dans le tableau Hive ACID. Cette amélioration permet d'accélérer les performances des requêtes de lecture lorsqu'il existe un grand nombre de divisions d'entrée dans une seule division groupée Tez.


| Nom | Classification | Description | 
| --- | --- | --- | 
|  `tez.grouping.split.init.threads`  |  `tez-site`  | Spécifie le nombre de threads de démon que Tez utilise pour pré-initier les `RecordReaders` et les divisions ouvertes. Pour les tables ACID, la valeur maximale prise en charge pour `tez.grouping.split.init.threads` est `1`. | 
|  `tez.grouping.split.init.recordreaders`  |  `tez-site`  | Spécifie le nombre de `RecordReaders` dont la pré-initialisation doit être conservée par les threads de démon. Cela peut être utile lorsque la division groupée Tez contient un grand nombre de `InputSplits`. L’initialisation de `RecordReaders` pour traiter ces divisions d’entrée peut être effectuée de manière asynchrone avec des threads de démon au lieu d’un traitement séquentiel. | 

Remarques relatives à la configuration :


| Objet | Détails | 
| --- | --- | 
| Paramètres de configuration recommandés | Il est recommandé de définir les paramètres de configuration ci-dessus sur les valeurs que vous souhaitez dans `hive-site` les deux`tez-site`. | 
| Valeurs correspondantes | Les valeurs des paramètres de configuration doivent être identiques dans les deux versions `hive-site` et`tez-site`. | 
| Recommandation LLAP | Il n'est pas recommandé d'utiliser cette fonctionnalité lorsque LLAP est activé. | 

### Analyse comparative de l’ouverture fractionnée asynchrone Tez
<a name="tez-configure-async-benchmark"></a>

Nous avons utilisé les environnements et configurations suivants pour procéder à l’analyse comparative de la capacité d’ouverture fractionnée asynchrone Tez :
+ **Environnement d’évaluation** – Cluster Amazon EMR avec 1 nœud primaire utilisant m5.16xlarge et 16 nœuds principaux utilisant m5.16xlarge.
+ **Configurations d’évaluation** – Pour simuler le scénario d’analyse comparative dans lequel un grand nombre de divisions d’entrée se trouvent dans une seule division groupée Tez, la valeur `tez.grouping.split-count` est définie sur `1`.
+ **Table utilisée pour l’analyse comparative** – La table contient 200 partitions, chaque partition contenant un seul fichier. L’analyse comparative est effectuée lorsque cette table contient des fichiers CSV et lorsque cette table contient des fichiers parquet. Requête Hive pour l’analyse comparative : `SELECT COUNT(*)` à dix reprises dans la table, et prenez le temps d’exécution moyen.
+ **Configurations pour activer l’ouverture fractionnée asynchrone Tez** :
  + `tez.grouping.split.init.threads` = `4`
  + `tez.grouping.split.init.recordreaders` = `10`


| Jeu de données | Fonctionnalité désactivée (référence) | Fonctionnalité activée | Amélioration | 
| --- | --- | --- | --- | 
|  Jeu de données CSV  |  90,26 secondes  | 79,20 secondes | 12,25 % | 
|  Jeu de données Parquet  |  54,67 secondes  | 42,23 secondes | 22,75 % | 