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à.
Riconfigurazione di un gruppo di istanze in un cluster in esecuzione
Con Amazon EMR versione 5.21.0 e successive, puoi riconfigurare le applicazioni cluster e specificare classificazioni di configurazione aggiuntive per ogni gruppo di istanze in un cluster in esecuzione. A tale scopo, puoi utilizzare la EMR console Amazon, il AWS Command Line Interface (AWS CLI) o il AWS SDK.
Quando aggiorni una configurazione dell'applicazione per un gruppo di istanze nella nuova EMR console Amazon, la console tenta di unire la nuova configurazione con la configurazione esistente per creare una nuova configurazione attiva. Nel caso insolito in cui Amazon non EMR riesca a unire la configurazione, la console ti avvisa.
Dopo aver inviato una richiesta di riconfigurazione per un gruppo di istanze, Amazon EMR assegna un numero di versione alla nuova specifica di configurazione. Puoi tenere traccia del numero di versione di una configurazione o dello stato di un gruppo di istanze visualizzando gli CloudWatch eventi. Per ulteriori informazioni, consulta Monitorare CloudWatch gli eventi.
Nota
È possibile limitarsi a sovrascrivere, e non eliminare, le configurazioni cluster specificate durante la creazione del cluster. Se ci sono differenze tra la configurazione esistente e il file fornito, Amazon EMR reimposta le configurazioni modificate manualmente, ad esempio le configurazioni che hai modificato durante la connessione al cluster utilizzandoSSH, ai valori predefiniti del cluster per il gruppo di istanze specificato.
Considerazioni sulla riconfigurazione di un gruppo di istanze
- Operazioni di riconfigurazione
-
Quando invii una richiesta di riconfigurazione utilizzando la EMR console Amazon, AWS Command Line Interface (AWS CLI) o Amazon EMR controlla il AWS SDK file di configurazione esistente sul cluster. Se ci sono differenze tra la configurazione esistente e il file fornito, Amazon EMR avvia azioni di riconfigurazione, riavvia alcune applicazioni e ripristina le configurazioni modificate manualmente, ad esempio le configurazioni modificate durante la connessione al cluster utilizzandoSSH, ai valori predefiniti del cluster per il gruppo di istanze specificato.
Nota
Amazon EMR esegue alcune azioni predefinite durante ogni riconfigurazione del gruppo di istanze. Queste azioni predefinite potrebbero entrare in conflitto con le personalizzazioni del cluster eseguite e causare errori di riconfigurazione. Per informazioni su come risolvere gli errori di riconfigurazione, consulta Risoluzione dei problemi relativi alla configurazione del gruppo di istanze.
Amazon avvia EMR anche azioni di riconfigurazione per le classificazioni di configurazione specificate nella richiesta. Per un elenco completo di queste azioni, consulta la sezione Classificazioni di configurazione per la versione di Amazon EMR che usi. Per esempio, Classificazioni di configurazione 6.2.0.
Nota
L'Amazon EMR Release Guide elenca solo le azioni di riconfigurazione a partire dalle EMR versioni Amazon 5.32.0 e 6.2.0.
- Interruzione del servizio
-
Amazon EMR segue un processo progressivo per riconfigurare le istanze nei gruppi di istanze Task e Core. Ogni volta, solo il 10% delle istanze in un gruppo di istanze vengono modificate e riavviate. Questo processo richiede più tempo per il completamento, ma riduce la possibilità di errori applicazione potenziali in un cluster in esecuzione.
Per eseguire i YARN job durante un YARN riavvio, puoi creare un EMR cluster Amazon con più nodi master o
yarn.resourcemanager.recovery.enabled
impostarlotrue
nella tua classificazione diyarn-site
configurazione. Per ulteriori informazioni sull'utilizzo di più nodi master, consulta Alta disponibilità YARN ResourceManager. - Convalida dell'applicazione
-
Amazon EMR verifica che ogni applicazione sul cluster sia in esecuzione dopo il processo di riavvio della riconfigurazione. Se un'applicazione non è disponibile, l'operazione di riconfigurazione complessiva ha esito negativo. Se un'operazione di riconfigurazione fallisce, Amazon EMR ripristina i parametri di configurazione alla versione funzionante precedente.
Nota
Per evitare errori di riconfigurazione, si consiglia di installare solo le applicazioni nel cluster che si prevede di utilizzare. Si consiglia inoltre di assicurarsi che tutte le applicazioni cluster siano integre e in esecuzione prima di inviare una richiesta di riconfigurazione.
- Tipi di riconfigurazione
-
È possibile riconfigurare un gruppo di istanze attraverso uno dei due metodi descritti di seguito:
-
Sovrascrittura. Metodo di riconfigurazione predefinito e l'unico disponibile nelle EMR versioni di Amazon precedenti alla 5.35.0 e 6.6.0. Questo metodo di riconfigurazione sovrascrive in modo indiscriminato qualsiasi file sul cluster con il set di configurazione appena inviato. Il metodo cancella tutte le modifiche ai file di configurazione apportate al di fuori della riconfigurazione. API
-
Unione. Metodo di riconfigurazione supportato per le EMR versioni di Amazon 5.35.0 e 6.6.0 e successive, ad eccezione della EMR console Amazon, dove nessuna versione lo supporta. Questo metodo di riconfigurazione unisce le configurazioni appena inviate con configurazioni già esistenti sul cluster. Questa opzione si limita ad aggiungere o modificare le nuove configurazioni che invii. Conserva le configurazioni esistenti.
Nota
Amazon EMR continua a sovrascrivere alcune configurazioni Hadoop essenziali necessarie per garantire il corretto funzionamento del servizio.
-
Limitazioni
Quando riconfiguri un gruppo di istanze in un cluster in esecuzione, considera le limitazioni seguenti:
-
YARNLe applicazioni diverse possono fallire durante il riavvio o causare problemi al cluster, soprattutto se le applicazioni non sono configurate correttamente. I cluster che si avvicinano alla quantità massima di memoria e CPU utilizzo possono riscontrare problemi dopo il processo di riavvio. Ciò vale soprattutto per il gruppo di istanze master.
-
Non è possibile inviare una richiesta di riconfigurazione quando un gruppo di istanze viene ridimensionato. Se viene avviata una riconfigurazione durante il ridimensionamento di un gruppo di istanze, la riconfigurazione non può iniziare finché il ridimensionamento del gruppo di istanze non è terminato, e viceversa.
-
Dopo aver riconfigurato un gruppo di istanze, Amazon EMR riavvia le applicazioni per consentire alle nuove configurazioni di avere effetto. Errori del processo o altri comportamenti dell'applicazione imprevisti possono verificarsi se le applicazioni sono in uso durante la riconfigurazione.
-
Se una riconfigurazione per un gruppo di istanze fallisce, Amazon EMR ripristina i parametri di configurazione alla versione funzionante precedente. Se il processo di ripristino ha esito negativo, è necessario inviare una nuova richiesta
ModifyInstanceGroup
per ripristinare il gruppo di istanze dallo statoSUSPENDED
. -
Le richieste di riconfigurazione per le classificazioni di configurazione Phoenix sono supportate solo nella EMR versione Amazon 5.23.0 e successive e non sono supportate nella EMR versione Amazon 5.21.0 o 5.22.0.
-
Le richieste di HBase riconfigurazione per le classificazioni di configurazione sono supportate solo nella EMR versione Amazon 5.30.0 e successive e non nelle EMR versioni di Amazon da 5.23.0 a 5.29.0.
-
Amazon EMR supporta le richieste di riconfigurazione delle applicazioni su un EMR cluster Amazon con più nodi primari solo nelle EMR versioni Amazon 5.27.0 e successive.
-
La riconfigurazione della
hdfs-encryption-zones
classificazione o di una qualsiasi delle classificazioni di KMS configurazione Hadoop non è supportata su un EMR cluster Amazon con più nodi primari. -
Amazon EMR attualmente non supporta determinate richieste di riconfigurazione per lo scheduler di capacità che richiedono il riavvio di. YARN ResourceManager Ad esempio, non è possibile rimuovere completamente una coda.
Riconfigurazione di un gruppo di istanze nella console
Nota
La EMR console Amazon non supporta le riconfigurazioni di tipo Merge.
-
Apri la EMR console Amazon all'indirizzo https://console.aws.amazon.com/emr
-
Nell'elenco di cluster sotto Name (Nome), scegli il cluster attivo che desideri riconfigurare.
-
Apri la pagina dei dettagli del cluster per il cluster e passa alla scheda Configurations (Configurazioni).
-
Nell'elenco a discesa Filter (Filtro), selezionare il gruppo di istanze da riconfigurare.
-
Nel menu a discesa Riconfigura, scegli Modifica nella tabella o Modifica nel file. JSON
-
Edit in table (Modifica nella tabella): nella tabella di classificazioni di configurazione, modifica la proprietà e il valore per configurazioni esistenti o scegli Add configuration (Aggiungi configurazione) per specificare classificazioni di configurazione aggiuntive.
-
Modifica nel JSON file: inserisci la configurazione direttamente in JSON o usa una sintassi abbreviata (illustrata nel testo ombra). Altrimenti, fornisci un Amazon S3 URI per un file con un JSON
Configurations
oggetto.
Nota
La colonna Source (Origine) nella tabella di classificazioni di configurazione indica se la configurazione viene specificata al momento della creazione di un cluster o quando vengono specificate configurazioni aggiuntive per questo gruppo di istanze. È possibile modificare le configurazioni per un gruppo di istanze da entrambe le origini. Non è possibile eliminare le configurazioni cluster iniziali, ma è possibile sovrascriverle per un gruppo di istanze.
È anche possibile aggiungere o modificare classificazioni di configurazione nidificate direttamente nella tabella. Ad esempio, per fornire una classificazione secondaria
export
aggiuntiva dihadoop-env
, aggiungere una classificazione di configurazionehadoop.export
nella tabella. Quindi, fornire proprietà e valore specifici per questa classificazione. -
-
(Facoltativo) Selezionare Apply this configuration to all active instance groups (Applica questa configurazione a tutti i gruppi di istanze attivi).
-
Salvare le modifiche.
Riconfigura un gruppo di istanze utilizzando il CLI
Utilizza il comando modify-instance-groups per specificare una nuova configurazione per un gruppo di istanze in un cluster in esecuzione.
Nota
Negli esempi seguenti, sostituite <j-2AL4XXXXXX5T9>
con il tuo ID del cluster e sostituisci <ig-1xxxxxxx9>
con il tuo ID del gruppo di istanze.
Esempio – Sostituzione di una configurazione per un gruppo di istanze
L'esempio seguente fa riferimento a un JSON file di configurazione chiamato instanceGroups.json
per modificare la proprietà del correttore dello stato del YARN NodeManager disco per un gruppo di istanze.
-
Prepara la classificazione della configurazione e salvala come
instanceGroups.json
nella stessa directory in cui esegui il comando.[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0" }, "Configurations":[] } ] } ] -
Esegui il comando seguente.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
Esempio – Aggiunta di una configurazione a un gruppo di istanze
Se desideri aggiungere una configurazione a un gruppo di istanze, devi includere le configurazioni specificate in precedenza per il gruppo di istanze nella nuova richiesta ModifyInstanceGroup
. In caso contrario, le configurazioni specificate in precedenza vengono rimosse.
L'esempio seguente aggiunge una proprietà per il controllo della memoria YARN NodeManager virtuale. La configurazione include anche i valori specificati in precedenza per il controllo dello stato del YARN NodeManager disco in modo che i valori non vengano sovrascritti.
-
Prepara i seguenti contenuti in
instanceGroups.json
e salvali nella stessa directory in cui esegui il comando:[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0", "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ] -
Esegui il comando seguente.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
Esempio - Aggiunta di una configurazione a un gruppo di istanze con una riconfigurazione di tipo Unione
Se intendi utilizzare il metodo di riconfigurazione predefinito Overwrite (Sovrascrittura) per aggiungere una configurazione, devi includere tutte le configurazioni specificate in precedenza per tale gruppo di istanze nella nuova richiesta ModifyInstanceGroup
. Altrimenti, Overwrite (Sovrascrittura) rimuove le configurazioni precedentemente specificate. Questa operazione non è necessaria per la riconfigurazione Merge (Unione). Piuttosto devi accertarti che la tua richiesta includa solo le nuove configurazioni.
L'esempio seguente aggiunge una proprietà per il controllo della memoria YARN NodeManager virtuale. Poiché si tratta di una riconfigurazione di tipo Merge, non sovrascrive i valori specificati in precedenza per il controllo dello stato del YARN NodeManager disco.
-
Prepara i seguenti contenuti in
instanceGroups.json
e salvali nella stessa directory in cui esegui il comando:[ {"InstanceGroupId":"
<ig-1xxxxxxx9>
", "ReconfigurationType" :"MERGE", "Configurations":[ {"Classification":"yarn-site", "Properties":{ "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ] -
Esegui il comando seguente.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
Esempio – Eliminazione di una configurazione per un gruppo di istanze
Per eliminare una configurazione per un gruppo di istanze, invia una nuova richiesta di riconfigurazione che esclude la configurazione precedente.
Nota
Puoi solo sostituire la configurazione del cluster iniziale. Non puoi eliminarla.
Ad esempio, per eliminare la configurazione per il controllo dello stato del YARN NodeManager disco dall'esempio precedente, inviane una nuova instanceGroups.json
con i seguenti contenuti.
[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ]
Nota
Per eliminare tutte le configurazioni nell'ultima richiesta di riconfigurazione, invia una richiesta di riconfigurazione con un array di configurazioni vuoto. Ad esempio,
[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[] } ]
Esempio – Riconfigurazione e ridimensionamento di un gruppo di istanze in un'unica richiesta
L'esempio seguente JSON mostra come riconfigurare e ridimensionare un gruppo di istanze nella stessa richiesta.
[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "InstanceCount":5, "EC2InstanceIdsToTerminate":["i-123"], "ForceShutdown":true, "ShrinkPolicy":{ "DecommissionTimeout":10, "InstanceResizePolicy":{ "InstancesToTerminate":["i-123"], "InstancesToProtect":["i-345"], "InstanceTerminationTimeout":20 } }, "Configurations":[ { "Classification":"yarn-site", "Configurations":[], "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0" } } ] } ]
Riconfigurare un gruppo di istanze utilizzando Java SDK
Nota
Negli esempi seguenti, sostituisci <j-2AL4XXXXXX5T9>
con il tuo ID del cluster e sostituisci <ig-1xxxxxxx9>
con il tuo ID del gruppo di istanze.
Il frammento di codice seguente fornisce una nuova configurazione per un gruppo di istanze utilizzando AWS SDK for Java.
AWSCredentials credentials = new BasicAWSCredentials("access-key", "secret-key"); AmazonElasticMapReduce emr = new AmazonElasticMapReduceClient(credentials); Map<String,String> hiveProperties = new HashMap<String,String>(); hiveProperties.put("hive.join.emit.interval","1000"); hiveProperties.put("hive.merge.mapfiles","true"); Configuration configuration = new Configuration() .withClassification("hive-site") .withProperties(hiveProperties); InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig() .withInstanceGroupId("
<ig-1xxxxxxx9>
") .withReconfigurationType("MERGE"); .withConfigurations(configuration); ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest() .withClusterId("<j-2AL4XXXXXX5T9>") .withInstanceGroups(igConfig); emr.modifyInstanceGroups(migRequest);
Il frammento di codice seguente elimina una configurazione specificata in precedenza per un gruppo di istanze specificando un array di configurazioni vuoto.
List<Configuration> configurations = new ArrayList<Configuration>(); InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig() .withInstanceGroupId("
<ig-1xxxxxxx9>
") .withConfigurations(configurations); ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest() .withClusterId("<j-2AL4XXXXXX5T9>
") .withInstanceGroups(igConfig); emr.modifyInstanceGroups(migRequest);
Risoluzione dei problemi relativi alla configurazione del gruppo di istanze
Se il processo di riconfigurazione per un gruppo di istanze fallisce, Amazon EMR ripristina la riconfigurazione e registra un messaggio di errore utilizzando un evento Amazon. CloudWatch L'evento fornisce un breve riepilogo dell'errore di riconfigurazione. Elenca le istanze per le quali la riconfigurazione non è riuscita e i messaggi di errore corrispondenti. Di seguito è riportato un esempio di messaggio di errore.
The reconfiguration operation for instance group
ig-1xxxxxxx9
in Amazon EMR clusterj-2AL4XXXXXX5T9
(ExampleClusterName) failed at 2021-01-01 00:00 UTC and took 2 minutes to fail. Failed configuration version isexample12345
. Failure message: Instancei-xxxxxxx1
,i-xxxxxxx2
,i-xxxxxxx3
failed with message "This is an example failure message".
Per raccogliere ulteriori dati su un errore di riconfigurazione, è possibile controllare i log di provisioning dei nodi. Ciò risulta particolarmente utile quando si riceve un messaggio come il seguente.
i-xxxxxxx1
failed with message “Unable to complete transaction and some changes were applied.”
Ogni file di log contiene un report di provisioning dettagliato per la riconfigurazione associata. Per trovare informazioni sui messaggi di errore, cerca il livello di log err
di un report. Il formato dei report dipende dalla versione di Amazon EMR presente nel cluster.
L'esempio seguente mostra informazioni sugli errori per le versioni di EMR rilascio di Amazon precedenti alla 5.32.0 e 6.2.0.
- !ruby/object:Puppet::Util::Log
level: !ruby/sym err
tags:
- err
message: "Example detailed error message."
source: Puppet
time: 2021-01-01 00:00:00.000000 +00:00
Le EMR versioni di Amazon 5.32.0 e 6.2.0 e successive utilizzano invece il seguente formato.
- level: err
message: 'Example detailed error message.'
source: Puppet
tags:
- err
time: '2021-01-01 00:00:00.000000 +00:00'
file:
line: