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
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 TezConfigurationhive-site
e pig-properties
in base alle esigenze. Di seguito sono riportati alcuni esempi.
Configurazione di esempio
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
.
Nota
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.5.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. Puoi farlo utilizzando la EMR console Amazon, il AWS Command Line Interface (AWS CLI) o il AWS SDK. Per ulteriori informazioni, consulta Specifica di una configurazione per un gruppo di istanze in un cluster in esecuzione.
Apertura della suddivisione asincrona Tez
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.
Nome | Classificazione | Descrizione |
---|---|---|
|
|
Specifica il numero di thread daemon che Tez utilizza per preinizializzare |
|
|
Specifica il numero di file |
Analisi comparativa per l'apertura asincrona delle suddivisioni Tez
Abbiamo utilizzato i seguenti ambienti e configurazioni per confrontare la capacità di apertura della suddivisione asincrona Tez:
-
Ambiente di riferimento: EMR cluster Amazon con 1 nodo primario che utilizza m5.16xlargee 16 nodi principali 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 su1
. -
Tabella utilizzata per il benchmarking: la tabella contiene 200 partizioni, ognuna delle quali contiene un singolo file. Il benchmark viene eseguito per quando la tabella contiene CSV file e quando quella tabella contiene 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 |
---|---|---|---|
CSV set di dati |
90,26 secondi |
79,20 secondi |
12,25% |
Parquet set di dati |
54,67 secondi |
42,23 secondi |
22,75% |