Fase 6: Controllo delle impostazioni di configurazione - Amazon EMR

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à.

Fase 6: Controllo delle impostazioni di configurazione

Le impostazioni di configurazione specificano dettagli relativi all'esecuzione di un cluster, come il numero di nuovi tentativi per un'attività e la quantità di memoria disponibile per l'ordinamento. Quando avvii un cluster utilizzando AmazonEMR, esistono impostazioni EMR specifiche di Amazon oltre alle impostazioni di configurazione standard di Hadoop. Le impostazioni di configurazione sono memorizzate nel nodo master del cluster. Puoi verificare le impostazioni di configurazione per assicurarti che il cluster disponga delle risorse necessarie per una corretta esecuzione.

Amazon EMR definisce le impostazioni di configurazione Hadoop predefinite che utilizza per avviare un cluster. I valori si basano sul tipo AMI e sul tipo di istanza specificato per il cluster. Puoi modificare i valori di default delle impostazioni di configurazione mediante un'operazione di bootstrap o specificando nuovi valori nei parametri di esecuzione dei processi. Per ulteriori informazioni, consulta Creazione di operazioni di bootstrap per l'installazione di software aggiuntivo. Per determinare se un'operazione di bootstrap ha modificato le impostazioni di configurazione, controlla i log delle operazioni di bootstrap.

Amazon EMR registra le impostazioni Hadoop utilizzate per eseguire ogni processo. I dati di log vengono archiviati in un file denominato /mnt/var/log/hadoop/history/ nella job_job-id_conf.xml directory del nodo master, dove job-id viene sostituito dall'identificatore del lavoro. Se hai abilitato l'archiviazione dei log, questi dati vengono copiati su Amazon S3 nella logs/date/jobflow-id/jobs cartella, dove date è la data di esecuzione del lavoro e jobflow-id è l'identificatore del cluster.

Le seguenti impostazioni di configurazione di processi Hadoop sono particolarmente utili per la risoluzione dei problemi di prestazioni. Per ulteriori informazioni sulle impostazioni di configurazione di Hadoop e su come queste influiscono sul comportamento di Hadoop, visita la pagina all'indirizzo http://hadoop.apache.org/docs/.

avvertimento
  1. L'impostazione dfs.replication su 1 nei cluster con meno di quattro nodi può causare la perdita di HDFS dati in caso di interruzione di un singolo nodo. Ti consigliamo di utilizzare un cluster con almeno quattro nodi principali per i carichi di lavoro di produzione.

  2. Amazon non EMR consentirà ai cluster di scalare i nodi principali sottostantidfs.replication. Ad esempio, se dfs.replication = 2, il numero minimo di nodi principali è 2.

  3. Quando utilizzi il dimensionamento gestito, il dimensionamento automatico o scegli di dimensionare manualmente il cluster, ti consigliamo di impostare dfs.replication su 2 o su un valore superiore.

Impostazione di configurazione Descrizione
dfs.replication Il numero di HDFS nodi in cui viene copiato un singolo blocco (ad esempio il blocco del disco rigido) per creare un ambiente simile a RAID -. Determina il numero di HDFS nodi che contengono una copia del blocco.
io.sort.mb La memoria totale disponibile per l'ordinamento. Il valore deve essere 10x io.sort.factor. Questa impostazione può anche essere utilizzata per calcolare la memoria totale utilizzata dal nodo di task moltiplicando io.sort.mb per mapred.tasktracker.ap.tasks.maximum.
io.sort.spill.percent Utilizzata durante l'ordinamento. In tal caso il disco viene utilizzato in quanto la memoria di ordinamento assegnata è esaurita.
mapred.child.java.opts Obsoleta. Utilizzare mapred.map.child.java.opts e mapred.reduce.child.java.opts. Le opzioni Java TaskTracker utilizzate all'avvio JVM di un task da eseguire all'interno. "-Xmx" è un parametro comune per l'impostazione della dimensione massima della memoria.
mapred.map.child.java.opts Le opzioni Java TaskTracker vengono utilizzate all'avvio di un'attività JVM for a map da eseguire all'interno. "-Xmx" è un parametro comune per l'impostazione della dimensione massima dell'heap di memoria.
mapred.map.tasks.speculative.execution Determina se i tentativi di attività di mappatura della stessa attività possono essere avviati in parallelo.
mapred.reduce.tasks.speculative.execution Determina se i tentativi di attività di riduzione della stessa attività possono essere avviati in parallelo.
mapred.map.max.attempts Il numero massimo di tentativi per un'attività di mappatura. Se tutti i tentativi non riescono, l'attività di mappatura viene contrassegnata come non riuscita.
mapred.reduce.child.java.opts Le opzioni Java TaskTracker vengono utilizzate all'avvio di un'attività JVM for a reduce da eseguire all'interno. "-Xmx" è un parametro comune per l'impostazione della dimensione massima dell'heap di memoria.
mapred.reduce.max.attempts Il numero massimo di tentativi per un'attività di riduzione. Se tutti i tentativi non riescono, l'attività di mappatura viene contrassegnata come non riuscita.
mapred.reduce.slowstart.completed.maps Il numero di attività di mappatura che devono essere completate prima dell'avvio delle attività di riduzione. Se il tempo di attesa è troppo breve, è possibile che vengano generati errori "Too many fetch-failure (Troppi errori di recupero)" nei tentativi.
mapred.reuse.jvm.num.tasks Un'attività viene eseguita all'interno di un'unica JVM operazione. Specifica quante attività possono essere riutilizzate allo stesso modo. JVM
mapred.tasktracker.map.tasks.maximum Il numero massimo di attività che possono essere eseguite in parallelo per nodo di task durante la mappatura.
mapred.tasktracker.reduce.tasks.maximum Il numero massimo di attività che possono essere eseguite in parallelo per nodo di task durante la riduzione.

Se le attività del cluster utilizzano molta memoria, è possibile migliorare le prestazioni utilizzando un minor numero di attività per nodo principale e riducendo la dimensione heap del job tracker.