

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione di Tez
<a name="tez-configure"></a>

Puoi personalizzare Tez impostando i valori tramite la classificazione di configurazione `tez-site`, che consente di configurare le impostazioni nel file di configurazione `tez-site.xml`. Per ulteriori informazioni, consulta la documentazione [TezConfiguration](https://tez.apache.org/releases/0.8.2/tez-api-javadocs/configs/TezConfiguration.html)di Apache Tez. Per modificare Hive o Pig perché impieghino il motore di esecuzione Tez, utilizza le classificazioni di configurazione `hive-site` e `pig-properties` in base alle esigenze. Di seguito sono riportati alcuni esempi.

## Configurazione di esempio
<a name="tez-configure-example"></a>

**Example Esempio: Personalizzazione del livello di registrazione root di Tez e impostazione di Tez come motore di esecuzione per Hive e Pig**  
Il comando `create-cluster` di esempio riportato di seguito crea un cluster con Tez, Hive e Pig installati. Il comando fa riferimento a un file archiviato in Amazon S3, `myConfig.json`, il quale specifica le proprietà per la classificazione `tez-site`, che imposta `tez.am.log.level` su `DEBUG` e definisce Tex come motore di esecuzione per Hive e Pig utilizzando le configurazioni di classificazione `hive-site` e `pig-properties`.  
I caratteri di continuazione della riga Linux (\\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).

```
aws emr create-cluster --release-label {{emr-7.13.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
```
Contenuti di esempio di `myConfig.json` sono mostrati di seguito.  

```
[
    {
      "Classification": "tez-site",
      "Properties": {
        "tez.am.log.level": "DEBUG"
      }
    },
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.execution.engine": "tez"
      }
    },
    {
      "Classification": "pig-properties",
      "Properties": {
        "exectype": "tez"
      }
    }
  ]
```

**Nota**  
Con Amazon EMR versione 5.21.0 e successive, puoi sovrascrivere le configurazioni del cluster e specificare classificazioni di configurazione aggiuntive per ogni gruppo di istanze in un cluster in esecuzione. A tale scopo, puoi utilizzare la console Amazon EMR, AWS Command Line Interface (AWS CLI) o l' AWS SDK. Per ulteriori informazioni, consulta [Specifica di una configurazione per un gruppo di istanze in un cluster in esecuzione](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

## Apertura della suddivisione asincrona Tez
<a name="tez-configure-async"></a>

Quando nel percorso della tabella è presente un gran numero di file di piccole dimensioni e una query tenta di leggerli tutti, ogni file di piccole dimensioni che corrisponde a ogni singola divisione viene combinato in una *suddivisione raggruppata* Tez. Un singolo mappatore elabora quindi la singola suddivisione raggruppata Tez. Poiché l'esecuzione è sincrona, ogni singola divisione nell'ambito della divisione raggruppata viene elaborata una per una. Ciò richiede che gli oggetti `RecordReader` elaborino le suddivisioni in modo sincrono.

Amazon EMR 6.15.0 introduce configurazioni che puoi specificare per aprire in modo asincrono gli split di input in uno split raggruppato Tez. La funzionalità è stata avviata da [TEZ-4397](https://issues.apache.org/jira/browse/TEZ-4397), ma presentava regressioni in OSS Hive. EMR Hive ha corretto le regressioni e i bug aggiuntivi nella tabella Hive ACID. Questo miglioramento si traduce in prestazioni più rapide delle query di lettura quando è presente un gran numero di suddivisioni di input in un singolo Tez Grouped Split.


| Nome | Classificazione | Description | 
| --- | --- | --- | 
| `tez.grouping.split.init.threads` | `tez-site` | Specifica il numero di thread daemon che Tez utilizza per preinizializzare `RecordReaders` e aprire le suddivisioni. Per le tabelle ACID, il valore massimo supportato di `tez.grouping.split.init.threads` è `1`. | 
| `tez.grouping.split.init.recordreaders` | `tez-site` | Specifica il numero di file `RecordReaders` da tenere preinizializzati dai thread daemon. Questo può essere utile quando la suddivisione raggruppata Tez contiene un gran numero di `InputSplits`. L'inizializzazione di `RecordReaders` per elaborare tali suddivisioni di input può essere eseguita in modo asincrono con i thread daemon anziché l'elaborazione sequenziale. | 

Note sulla configurazione:


| Oggetto | Informazioni | 
| --- | --- | 
| Impostazioni di configurazione consigliate | Si consiglia di impostare le impostazioni di configurazione precedenti sui valori desiderati in entrambi `hive-site` e`tez-site`. | 
| Valori corrispondenti | I valori delle impostazioni di configurazione devono essere gli stessi in entrambi `hive-site` e`tez-site`. | 
| Raccomandazione LLAP | Non è consigliabile utilizzare questa funzionalità quando LLAP è abilitato. | 

### Analisi comparativa per l'apertura asincrona delle suddivisioni Tez
<a name="tez-configure-async-benchmark"></a>

Abbiamo utilizzato i seguenti ambienti e configurazioni per confrontare la capacità di apertura della suddivisione asincrona Tez:
+ **Ambiente di riferimento**: cluster Amazon EMR con 1 nodo primario che utilizza m5.16xlarge e 16 nodi primari che utilizzano m5.16xlarge.
+ **Configurazioni di riferimento**: per simulare lo scenario di benchmarking in cui un gran numero di suddivisioni di input si trovano in una singola suddivisione raggruppata Tez, `tez.grouping.split-count` è impostato su `1`.
+ **Tabella utilizzata per il benchmarking**: la tabella contiene 200 partizioni, ognuna delle quali contiene un singolo file. Il benchmark viene eseguito quando la tabella contiene file CSV e file parquet. Query Hive per il benchmarking: `SELECT COUNT(*)` dalla tabella dieci volte e calcola il runtime medio.
+ **Configurazioni per abilitare l'apertura della suddivisione asincrona Tez** come segue:
  + `tez.grouping.split.init.threads` = `4`
  + `tez.grouping.split.init.recordreaders` = `10`


| Set di dati | Funzionalità disabilitata (baseline) | Funzionalità abilitata | Miglioramenti | 
| --- | --- | --- | --- | 
| set di dati CSV | 90,26 secondi | 79,20 secondi | 12,25% | 
| set di dati Parquet | 54,67 secondi | 42,23 secondi | 22,75% | 