Risolvere i problemi di YARN di Apache Hadoop usando Azure HDInsight

Informazioni sui problemi principali che possono verificarsi quando si usano i payload di Apache Hadoop YARN in Apache Ambari unitamente alle risoluzioni.

Come si crea una nuova coda YARN in un cluster?

Procedura per la risoluzione

Seguire questa procedura in Ambari per creare una nuova coda YARN e bilanciare l'allocazione delle capacità tra tutte le code.

In questo esempio è stata modificata la capacità dal 50% al 25% per due code esistenti (predefinita e thriftsvr), in modo da consentire alla nuova coda (Spark) di avere una capacità del 50%.

Queue Capacità Capacità massima
impostazione predefinita 25% 50%
thrftsvr 25% 50%
spark 50% 50%
  1. Selezionare l'icona Visualizzazioni di Ambari e scegliere il motivo di griglia. Selezionare quindi YARN Queue Manager (Gestore code YARN).

    Apache Ambari dashboard YARN Queue Manager.

  2. Selezionare la coda predefinita.

    Apache Ambari YARN select default queue.

  3. Per la coda predefinita, modificare la capacità dal 50% al 25%. Per la coda thriftsvr, impostare la capacità sul 25%.

    Change the capacity to 25% for the default and thriftsvr queues.

  4. Per creare una nuova coda, fare clic su Aggiungi coda.

    Apache Ambari YARN dashboard Add Queue.

  5. Assegnare un nome alla nuova coda.

    Apache Ambari YARN dashboard name Queue.

  6. Lasciare i valori di Capacità al 50% e selezionare il pulsante Azioni.

    Apache Ambari YARN select action.

  7. Selezionare Save and Refresh Queues (Salva e aggiorna code).

    Select Save and Refresh Queues.

Queste modifiche saranno immediatamente visibili nell'interfaccia utente dell'utilità di pianificazione YARN.

Altre risorse

Come si scaricano i log di YARN da un cluster?

Procedura per la risoluzione

  1. Connettersi al cluster HDInsight con un client Secure Shell (SSH). Per altre informazioni, vedere Altre informazioni.

  2. Elencare tutti gli ID applicazione delle applicazioni YARN attualmente in esecuzione con il comando seguente:

    yarn top
    

    Gli ID sono elencati nella colonna APPLICATIONID, di cui è necessario scaricare i log APPLICATIONID.

    YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root
    NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted
    Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed
    Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved
    Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved
    Queue(s) Containers: 2 allocated, 0 pending, 0 reserved
    
                      APPLICATIONID USER             TYPE      QUEUE   #CONT  #RCONT  VCORES RVCORES     MEM    RMEM  VCORESECS    MEMSECS %PROGR       TIME NAME
     application_1490377567345_0007 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628407    2442611  10.00   18:20:20 Thrift JDBC/ODBC Server
     application_1490377567345_0006 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628430    2442645  10.00   18:20:20 Thrift JDBC/ODBC Server
    
  3. Per scaricare i log dei contenitori YARN per tutti gli schemi dell'applicazione, usare il comando seguente:

    yarn logs -applicationIdn logs -applicationId <application_id> -am ALL > amlogs.txt
    

    Verrà creato un file di log denominato amlogs.txt.

  4. Per scaricare i log dei contenitori YARN solo per gli schemi dell'applicazione più recenti, usare il comando seguente:

    yarn logs -applicationIdn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    

    Verrà creato un file di log denominato latestamlogs.txt.

  5. Per scaricare i log dei contenitori YARN per i primi due schemi dell'applicazione, usare il comando seguente:

    yarn logs -applicationIdn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    

    Verrà creato un file di log denominato first2amlogs.txt.

  6. Per scaricare tutti i log dei contenitori YARN, usare il comando seguente:

    yarn logs -applicationIdn logs -applicationId <application_id> > logs.txt
    

    Verrà creato un file di log denominato logs.txt.

  7. Per scaricare il log dei contenitori YARN per un determinato contenitore, usare il comando seguente:

    yarn logs -applicationIdn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
    

    Verrà creato un file di log denominato containerlogs.txt.

Altre letture

Ricerca per categorie controllare le informazioni di diagnostica dell'applicazione Yarn?

La diagnostica nell'interfaccia utente di Yarn è una funzionalità che consente di visualizzare lo stato e i log delle applicazioni in esecuzione in Yarn. La diagnostica consente di risolvere i problemi e di eseguire il debug delle applicazioni, nonché di monitorare le prestazioni e l'utilizzo delle risorse.

Per visualizzare la diagnostica di un'applicazione specifica, è possibile fare clic sull'ID applicazione nell'elenco delle applicazioni. Nella pagina dei dettagli dell'applicazione è anche possibile visualizzare un elenco di tutti i tentativi effettuati per eseguire l'applicazione. È possibile fare clic su qualsiasi tentativo di visualizzare altri dettagli, ad esempio l'ID tentativo, l'ID del contenitore, l'ID nodo, l'ora di inizio, l'ora di fine e la diagnostica

Screenshot showing Yarn Application Diagnostics.

Ricerca per categorie risolvere i problemi comuni di YARN?

L'interfaccia utente di Yarn non viene caricata

Se l'interfaccia utente yarn non viene caricata o non è raggiungibile e restituisce "Errore HTTP 502.3 - Gateway non valido", indica altamente che il servizio Resource Manager non è integro. Per mitigare il problema, seguire questa procedura:

  1. Passare a RIEPILOGO YARN>dell'interfaccia utente>di Ambari e verificare se solo resource manager attivo si trova nello stato Avviato. In caso contrario, provare a mitigare riavviando il resource manager non integro o arrestato.
  2. Se il passaggio 1 non risolve il problema, ssh il nodo head di Resource Manager attivo e controlla lo stato di Garbage Collection usando jstat -gcutil <Resource Manager pid> 1000 100. Se si nota un aumento significativo del file FGCT in pochi secondi, indica che Resource Manager è occupato in GC completo e non è in grado di elaborare le altre richieste.
  3. Passare a Interfaccia utente di Ambari>YARN>CONFIGS>Avanzate e aumentare Resource Manager java heap size.
  4. Riavviare i servizi obbligatori nell'interfaccia utente di Ambari.

Entrambi i gestori di risorse sono in modalità standby

  1. Controllare il log di Resource Manager per verificare se esiste un errore simile.
Service RMActiveServices failed in state STARTED; cause: org.apache.hadoop.service.ServiceStateException: com.google.protobuf.InvalidProtocolBufferException: Could not obtain block: BP-452067264-10.0.0.16-1608006815288:blk_1074235266_494491 file=/yarn/node-labels/nodelabel.mirror
  1. Se l'errore esiste, verificare se alcuni file sono in fase di replica o se sono in HDFS mancano blocchi. È possibile eseguire hdfs fsck hdfs://mycluster/

  2. Eseguire hdfs fsck hdfs://mycluster/ -delete troppo la pulizia forzata di HDFS e per sbarazzarsi del problema rm di standby. In alternativa, eseguire PatchYarnNodeLabel in uno dei nodi head per applicare patch al cluster.

Passaggi successivi

Se il problema riscontrato non è presente in questo elenco o se non si riesce a risolverlo, visitare uno dei canali seguenti per ottenere ulteriore assistenza:

  • Ricevere risposte dagli esperti di Azure tramite la pagina Supporto della community per Azure.

  • Connessione con @AzureSupport: l'account ufficiale di Microsoft Azure per migliorare l'esperienza dei clienti. Mette in contatto la community di Azure con le risorse giuste: risposte, supporto ed esperti.

  • Se serve ulteriore assistenza, è possibile inviare una richiesta di supporto dal portale di Azure. Selezionare Supporto nella barra dei menu o aprire l'hub Guida e supporto. Per informazioni più dettagliate, vedere Come creare una richiesta di supporto in Azure. L'accesso al supporto per la gestione delle sottoscrizioni e la fatturazione è incluso nella sottoscrizione di Microsoft Azure e il supporto tecnico viene fornito tramite uno dei piani di supporto di Azure.