Riconfigurazione delle flotte di istanze per il tuo cluster Amazon EMR - 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à.

Riconfigurazione delle flotte di istanze per il tuo cluster Amazon EMR

Con Amazon EMR versione 5.21.0 e successive, puoi riconfigurare le applicazioni cluster e specificare classificazioni di configurazione aggiuntive per ogni flotta di istanze in un cluster in esecuzione. A tale scopo, puoi utilizzare l'interfaccia a riga di AWS comando (AWS CLI) o l'SDK. AWS

È possibile tenere traccia dello stato di una flotta di istanze visualizzando gli CloudWatch eventi. Per ulteriori informazioni, consulta Eventi di riconfigurazione del parco istanze.

Nota

È possibile sovrascrivere solo l'oggetto Configurazioni del cluster specificato durante la creazione del cluster. Per ulteriori informazioni sugli oggetti Configurations, consulta RunJobFlow la sintassi della richiesta. Se ci sono differenze tra la configurazione esistente e il file fornito, Amazon EMR reimposta le configurazioni modificate manualmente, ad esempio le configurazioni modificate durante la connessione al cluster tramite SSH, ai valori predefiniti del cluster per la flotta di istanze specificata.

Quando invii una richiesta di riconfigurazione utilizzando la console Amazon EMR, AWS l'interfaccia a riga di comando AWS CLI() o AWS l'SDK, Amazon EMR verifica il 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 tutte le configurazioni modificate manualmente, ad esempio le configurazioni modificate durante la connessione al cluster tramite SSH, ai valori predefiniti del cluster per la flotta di istanze specificata.

Comportamenti di riconfigurazione

La riconfigurazione sovrascrive la configurazione sul cluster con il set di configurazione appena inviato e può sovrascrivere le modifiche alla configurazione apportate al di fuori dell'API di riconfigurazione.

Amazon EMR segue un processo continuo per riconfigurare le istanze nella flotta di istanze Task e Core. Solo una percentuale delle istanze per un singolo tipo di istanza viene modificata e riavviata alla volta. Se il tuo parco istanze ha più configurazioni di tipi di istanze diverse, queste verranno riconfigurate in parallelo.

Le riconfigurazioni vengono dichiarate a livello. InstanceTypeConfig Per un esempio visivo, fare riferimento a. Riconfigurazione di un parco di istanze È possibile inviare richieste di riconfigurazione che contengono impostazioni di configurazione aggiornate per uno o più tipi di istanza all'interno di una singola richiesta. È necessario includere tutti i tipi di istanze che fanno parte del parco istanze nella richiesta di modifica; tuttavia, i tipi di istanze con campi di configurazione compilati verranno riconfigurati, mentre le altre InstanceTypeConfig istanze del parco istanze rimarranno invariate. Una riconfigurazione è considerata riuscita solo quando tutte le istanze dei tipi di istanze specificati completano la riconfigurazione. Se una delle istanze non riesce a riconfigurarsi, l'intero parco istanze torna automaticamente all'ultima configurazione stabile conosciuta.

Limitazioni

Quando riconfigurate un parco istanze in un cluster in esecuzione, considerate le seguenti limitazioni:

  • Le applicazioni non YARN possono avere esito negativo durante il riavvio o causare problemi al cluster, soprattutto se le applicazioni non sono configurate correttamente. I cluster che si avvicinano al massimo utilizzo della memoria e della CPU potrebbero essere interessati da problemi dopo il processo di riavvio. Ciò è particolarmente vero per la flotta di istanze principali. Consulta la Risolvi i problemi di riconfigurazione del parco istanze sezione.

  • Le operazioni di ridimensionamento e riconfigurazione non avvengono in parallelo. Le richieste di riconfigurazione attenderanno un ridimensionamento continuo e viceversa.

  • Le operazioni di ridimensionamento e riconfigurazione non avvengono in parallelo. Le richieste di riconfigurazione attenderanno un ridimensionamento continuo e viceversa.

  • Dopo aver riconfigurato una flotta 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 qualsiasi tipo di configurazione di istanze in un parco istanze fallisce, Amazon EMR inverte i parametri di configurazione alla versione funzionante precedente per l'intero parco istanze, oltre a emettere eventi e aggiornare i dettagli sullo stato. Se anche il processo di reversione fallisce, devi inviare una nuova ModifyInstanceFleet richiesta per ripristinare la flotta di istanze dallo stato. ARRESTED Gli errori di reversione provocano eventi di riconfigurazione del parco istanze e cambiamenti di stato.

  • Le richieste di riconfigurazione per le classificazioni di configurazione Phoenix sono supportate solo in Amazon EMR versione 5.23.0 e successive e non in Amazon EMR versione 5.21.0 o 5.22.0.

  • Le richieste di HBase riconfigurazione per le classificazioni di configurazione sono supportate solo in Amazon EMR versione 5.30.0 e successive e non sono supportate nelle versioni di Amazon EMR da 5.23.0 a 5.29.0.

  • La riconfigurazione della classificazione hdfs-encryption-zones o di una qualsiasi classificazione di configurazione Hadoop KMS non è supportata su un cluster Amazon EMR con più nodi primari.

  • Amazon EMR attualmente non supporta alcune richieste di riconfigurazione per lo scheduler di capacità YARN che richiedono il riavvio di YARN. ResourceManager Ad esempio, non è possibile rimuovere completamente una coda.

  • Quando YARN deve essere riavviato, tutti i job YARN in esecuzione vengono in genere terminati e persi. Ciò potrebbe causare ritardi nell'elaborazione dei dati. Per eseguire i job YARN durante un riavvio di YARN, puoi creare un cluster Amazon EMR con più nodi primari o impostare yarn.resourcemanager.recovery.enabled su nella classificazione della configurazione yarn-site. true Per ulteriori informazioni sull'utilizzo di più nodi master, consulta YARN ad alta disponibilità. ResourceManager

Riconfigurazione di un parco di istanze

Using the AWS CLI

Utilizza il modify-instance-fleet comando per specificare una nuova configurazione per un parco istanze in un cluster in esecuzione.

Nota

Negli esempi seguenti, sostituisci j-2 AL4 XXXXXX5 T9 con il tuo ID del cluster e sostituisci if-1xxxxxxx9 con l'ID del tuo parco istanze.

Esempio: sostituisci una configurazione per un parco di istanze

avvertimento

Specificate tutti InstanceTypeConfig i campi che avete usato al momento del lancio. La mancata inclusione dei campi può comportare la sovrascrittura delle specifiche dichiarate al momento del lancio. InstanceTypeConfigPer un elenco, fare riferimento a.

L'esempio seguente fa riferimento a un file JSON di configurazione chiamato InstanceFleet.json per modificare la proprietà del controllore dello stato del disco YARN NodeManager per un parco di istanze.

Modifica della flotta di istanze (JSON)

  1. Prepara la classificazione della configurazione e salvala come InstanceFleet.json nella stessa directory in cui eseguirai il comando.

    { "InstanceFleetId":"if-1xxxxxxx9", "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", other InstanceTypeConfig fields "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" } } ] }, { "InstanceType": "r5.xlarge", other InstanceTypeConfig fields "Configurations": [ { "Classification": "yarn-site", "Properties": { "yarn.nodemanager.disk-health-checker.enable":"false", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"70.0" } } ] } ]
  2. Esegui il comando seguente.

    aws emr modify-instance-fleet \ --cluster-id j-2AL4XXXXXX5T9 \ --region us-west-2 \ --instance-fleet instanceFleet.json

Esempio: aggiungi una configurazione a un parco istanze

Se desideri aggiungere una configurazione a un tipo di istanza, devi includere tutte le configurazioni specificate in precedenza per quel tipo di istanza nella nuova ModifyInstanceFleet richiesta. In caso contrario, le configurazioni specificate in precedenza vengono rimosse.

L'esempio seguente aggiunge una proprietà per il controllo della memoria NodeManager virtuale YARN. La configurazione include anche i valori specificati in precedenza per il controllo dello stato del NodeManager disco YARN in modo che i valori non vengano sovrascritti.

  1. Prepara i seguenti contenuti in InstanceFleet.json e salvalo nella stessa directory in cui eseguirai il comando.

    { "InstanceFleetId":"if-1xxxxxxx9", "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", other InstanceTypeConfig fields "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" } } ] }, { "InstanceType": "r5.xlarge", other InstanceTypeConfig fields "Configurations": [ { "Classification": "yarn-site", "Properties": { "yarn.nodemanager.disk-health-checker.enable":"false", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"70.0" } } ] } ] }
  2. Esegui il comando seguente.

    aws emr modify-instance-fleet \ --cluster-id j-2AL4XXXXXX5T9 \ --region us-west-2 \ --instance-fleet instanceFleet.json
using the Java SDK
Nota

Negli esempi seguenti, sostituisci j-2 AL4 XXXXXX5 T9 con il tuo ID del cluster e sostituisci if-1xxxxxxx9 con l'ID del tuo parco istanze.

Il seguente frammento di codice fornisce una nuova configurazione per un parco di istanze utilizzando l' 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 newConfiguration = new Configuration() .withClassification("hive-site") .withProperties(hiveProperties); List<InstanceTypeConfig> instanceTypeConfigList = new ArrayList<>(); for (InstanceTypeConfig instanceTypeConfig : currentInstanceTypeConfigList) { instanceTypeConfigList.add(new InstanceTypeConfig() .withInstanceType(instanceTypeConfig.getInstanceType()) .withBidPrice(instanceTypeConfig.getBidPrice()) .withWeightedCapacity(instanceTypeConfig.getWeightedCapacity()) .withConfigurations(newConfiguration) ); } InstanceFleetModifyConfig instanceFleetModifyConfig = new InstanceFleetModifyConfig() .withInstanceFleetId("if-1xxxxxxx9") .withInstanceTypeConfigs(instanceTypeConfigList); ModifyInstanceFleetRequest modifyInstanceFleetRequest = new ModifyInstanceFleetRequest() .withInstanceFleet(instanceFleetModifyConfig) .withClusterId("j-2AL4XXXXXX5T9"); emrClient.modifyInstanceFleet(modifyInstanceFleetRequest);

Risolvi i problemi di riconfigurazione del parco istanze

Se il processo di riconfigurazione per qualsiasi tipo di istanza all'interno di un parco istanze fallisce, Amazon EMR ripristina la riconfigurazione in corso e registra un messaggio di errore utilizzando un evento Events. AAmazon 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.

Amazon EMR couldn't revert the instance fleet if-1xxxxxxx9 in the Amazon EMR cluster j-2AL4XXXXXX5T9 (ExampleClusterName) to the previously successful configuration at 2021-01-01 00:00 UTC. The reconfiguration reversion failed because of Instance i-xxxxxxx1, i-xxxxxxx2, i-xxxxxxx3 failed with message "This is an example failure message"...

Per accedere ai log di provisioning dei nodi

Utilizza SSH per connetterti al nodo sul quale la riconfigurazione non è riuscita. Per istruzioni, consulta Connect alla tua istanza Linux in Amazon Elastic Compute Cloud.

Accessing logs by connecting to a node
  1. Passa alla directory seguente, che contiene i file di log di provisioning dei nodi.

    /mnt/var/log/provision-node/
  2. Apri la sottodirectory dei report e cerca il report di provisioning dei nodi per la riconfigurazione. La directory dei report organizza i log in base al numero di versione di riconfigurazione, all'identificatore univoco universale (UUID), all'indirizzo IP dell'istanza Amazon EC2 e al timestamp. Ogni report è un file YAML compresso che contiene informazioni dettagliate sul processo di riconfigurazione. Di seguito è riportato un esempio di nome del file di report e relativo percorso.

    /reports/2/ca598xxx-cxxx-4xxx-bxxx-6dbxxxxxxxxx/ip-10-73-xxx-xxx.ec2.internal/202104061715.yaml.gz
  3. Puoi esaminare un report utilizzando un visualizzatore di file come zless, come nell'esempio seguente.

    zless 202104061715.yaml.gz
Accessing logs using Amazon S3

Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/ Apri il bucket Amazon S3 specificato quando il cluster è stato configurato per archiviare i file di log.

  1. Passa alla cartella seguente, che contiene i file di log di provisioning dei nodi:

    amzn-s3-demo-bucket/elasticmapreduce/cluster id/node/instance id/provision-node/
  2. Apri la cartella dei report e cerca il report di provisioning dei nodi per la riconfigurazione. La cartella dei report organizza i log in base al numero di versione di riconfigurazione, all'identificatore univoco universale (UUID), all'indirizzo IP dell'istanza Amazon EC2 e al timestamp. Ogni report è un file YAML compresso che contiene informazioni dettagliate sul processo di riconfigurazione. Di seguito è riportato un esempio di nome del file di report e relativo percorso.

    /reports/2/ca598xxx-cxxx-4xxx-bxxx-6dbxxxxxxxxx/ip-10-73-xxx-xxx.ec2.internal/202104061715.yaml.gz

Per visualizzare un file di log, puoi scaricarlo da Amazon S3 sul tuo computer come file di testo. Per istruzioni, consulta Download di un oggetto.

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 del report dipende dalla versione di Amazon EMR sul cluster. L'esempio seguente mostra le informazioni sugli errori per le versioni 5.32.0 e 6.2.0 di Amazon EMR e le versioni successive utilizzano 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: