Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Perché le mie applicazioni Yarn in Amazon EMR sono nello stato Accettato?
I miei processi Amazon EMR sono bloccati nello stato Accettato e i log mostrano “WARN YarnScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources”.
Breve descrizione
I processi EMR rimangono bloccati nello stato Accettato se il cluster non dispone di risorse sufficienti per soddisfare la richiesta del processo. Ciò può accadere per i seguenti motivi:
- Il valore YARNMemoryAvailablePercentage è molto basso e tanti container sono in sospeso.
- L'applicazione non può avviare il master di un'applicazione a causa di risorse insufficienti nei nodi principali. Ciò può verificarsi su Amazon EMR 5.19.0 e versioni successive, esclusa la serie Amazon EMR 6.x.
- I nodi principali non sono integri.
- Un processo EMR sta consumando tutte le risorse.
Risoluzione
Il cluster non dispone di risorse sufficienti per soddisfare la richiesta del processo
1. Connettiti all'interfaccia utente di Resource Manager o utilizza il seguente comando da qualsiasi nodo per controllare le risorse:
yarn top 10
2. Controlla se le risorse utilizzate sono quasi equivalenti alle risorse totali. Puoi anche controllare le metriche di Amazon CloudWatch per YARNMemoryAvailablePercentage e MemoryAvailableMB.
4. Se necessario, aggiungi più capacità al cluster. Puoi utilizzare il dimensionamento gestito di EMR o il dimensionamento automatico per aggiungere o ridurre automaticamente la capacità in base all'utilizzo delle risorse.
Le risorse sui nodi principali sono insufficienti.
Su EMR 5.19.0 e versioni successive, esclusa la serie 6.0, il master dell’applicazione viene eseguito sul nodo principale per impostazione predefinita. Nella serie EMR 6.x, il master dell’applicazione può essere eseguito sia sul nodo principale che sul nodo attività.
A causa dell'aumento del numero di processi inviati e del minor numero di nodi principali, i nodi principali non possono allocare un altro container master dell'applicazione. Quindi il processo potrebbe bloccarsi anche se i nodi attività dispongono di memoria sufficiente. In tal caso, potresti visualizzare il seguente messaggio nei log del container:
Application is Activated, waiting for resources to be assigned for AM. Last Node which was processed for the application : ip-xxxx:8041 ( Partition : [], Total resource : <memory:516096, vCores:64>, Available resource : <memory:516096,vCores:64> ). Details : AM Partition = CORE ; Partition Resource = <memory:516096, vCores:64> ; Queue's Absolute capacity = 100.0 % ; Queue's Absolute used capacity = 99.53497 % ; Queue's Absolute max capacity =100.0 %
In tal caso, termina i processi per liberare alcune risorse. Oppure aggiungi altri nodi principali al cluster.
Inoltre, puoi disattivare le etichette YARN in Amazon EMR 5.x.
I nodi principali non sono integri
Se lo spazio su disco dei nodi principali è esaurito e il punto di montaggio ha un utilizzo del disco superiore al 90%, Amazon EMR considera il nodo non integro. I nuovi container non sono pianificati su nodi non integri. In tal caso, nei log del controller dell'istanza primaria viene visualizzato il seguente messaggio. I log si trovano in /emr/instance-controller/log.
Yarn unhealthy Reason : 1/4 local-dirs usable space is below configured utilization percentage/no more usable space [ /mnt/yarn : used space above threshold of 90.0% ] ; 1/1 log-dirs usable space is below configured utilization percentage/no more usable space [ /var/log/hadoop-yarn/containers : used space above threshold of 90.0% ]
Per correggere i nodi non integri, riduci l'utilizzo del disco rimuovendo i vecchi log dei container o i log degli eventi Spark. Puoi inoltre dimensionare dinamicamente lo spazio di archiviazione in base all'utilizzo del disco.
Un processo sta consumando tutte le risorse o i parametri Spark sono configurati oltre i limiti del cluster
Per impostazione predefinita, l’opzione Allocazione dinamica Spark è attivata in Amazon EMR. Se un processo Spark non è configurato correttamente, potrebbe consumare tutte le risorse del cluster. Per esempio, viene visualizzato questo errore se il limite Max Executors (spark.dynamicAllocation.maxExecutors) non è sufficientemente alto. Per i processi Spark, ottimizza i vincoli di memoria per evitare che un processo consumi tutte le risorse del cluster.
Il processo non viene accettato se la memoria dell'esecutore o la memoria del driver sono superiori ai parametri configurati da Yarn. I parametri configurati da Yarn sono yarn.scheduler.maximum-allocation-mb e yarn.nodemanager.resource.memory-mb. In tal caso, viene visualizzato un messaggio di errore simile al seguente:
22/01/03 20:05:05 INFO Client: Verifying our application has not requested more than the maximum memory capability of the cluster (24576 MB per container) Exception in thread "main" java.lang.IllegalArgumentException: Required executor memory (49152),overhead (6144 MB), and PySpark memory (0 MB) is above the max threshold (24576 MB) of this cluster! Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'.
Per risolvere questo problema, procedi come segue:
- Verifica la quantità di memoria Yarn per tipo di istanza prima di modificare i valori della memoria.
- Implementa le code CapacityScheduler per limitare le risorse di processo utilizzate da un processo.

Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 7 mesi fa
- AWS UFFICIALEAggiornata 4 anni fa