Accedere ai log delle applicazioni YARN in HDInsight basato su LinuxAccess YARN application logs on Linux-based HDInsight

Informazioni su come accedere ai log di applicazioni YARN (Yet Another Resource Negotiator) in un cluster Hadoop in Azure HDInsight.Learn how to access the logs for YARN (Yet Another Resource Negotiator) applications on a Hadoop cluster in Azure HDInsight.

Importante

I passaggi descritti in questo documento richiedono un cluster HDInsight che usa Linux.The steps in this document require an HDInsight cluster that uses Linux. Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva.Linux is the only operating system used on HDInsight version 3.4 or greater. Per altre informazioni, vedere l'articolo sul controllo delle versioni del componente di HDInsight.For more information, see HDInsight component versioning.

Server di sequenza temporale YARNYARN Timeline Server

Il server di sequenza temporale YARN offre informazioni generiche sulle applicazioni completate e informazioni sulle applicazioni specifiche del framework, tramite due interfacce diverse.The YARN Timeline Server provides generic information on completed applications and framework-specific application information through two different interfaces. In particolare:Specifically:

  • L'archiviazione e il recupero di informazioni generiche sulle applicazioni nei cluster HDInsight sono stati abilitati a partire dalla versione 3.1.1.374.Storage and retrieval of generic application information on HDInsight clusters has been enabled with version 3.1.1.374 or higher.
  • Il componente di informazioni sulle applicazioni specifiche del framework del server di sequenza temporale non è attualmente disponibile nei cluster HDInsight.The framework-specific application information component of the Timeline Server is not currently available on HDInsight clusters.

Le informazioni generiche sulle applicazioni includono i seguenti tipi di dati:Generic information on applications includes the following type of data:

  • ID applicazione, un identificatore univoco di un'applicazioneThe application ID, a unique identifier of an application
  • Utente che ha avviato l'applicazioneThe user who started the application
  • Informazioni sui tentativi effettuati per completare l'applicazioneInformation on attempts made to complete the application
  • Contenitori usati da qualsiasi tentativo dell'applicazione specificoThe containers used by any given application attempt

Log e applicazioni YARNYARN applications and logs

YARN supporta diversi modelli di programmazione, tra cui MapReduce, separando la gestione delle risorse dalla pianificazione e dal monitoraggio dell'applicazione.YARN supports multiple programming models (MapReduce being one of them) by decoupling resource management from application scheduling/monitoring. YARN usa un oggetto ResourceManager (RM) globale, oggetti NodeManagers (NM) per ogni nodo di lavoro e oggetti ApplicationMasters (AM) per ogni applicazione.YARN uses a global ResourceManager (RM), per-worker-node NodeManagers (NMs), and per-application ApplicationMasters (AMs). L'AM per applicazione negozia le risorse (CPU, memoria, disco e rete) per l'esecuzione dell'applicazione con l'RM.The per-application AM negotiates resources (CPU, memory, disk, network) for running your application with the RM. L'oggetto RM opera con gli oggetti NM per concedere queste risorse come contenitori.The RM works with NMs to grant these resources, which are granted as containers. L'AM è responsabile del monitoraggio dello stato dei contenitori assegnati dall'RM.The AM is responsible for tracking the progress of the containers assigned to it by the RM. A seconda del tipo, un'applicazione può richiedere più contenitori.An application may require many containers depending on the nature of the application.

Ogni applicazione può essere costituita da più tentativi dell'applicazione.Each application may consist of multiple application attempts. Se si verifica un errore in un'applicazione, è possibile ripetere un nuovo tentativo.If an application fails, it may be retried as a new attempt. Ogni tentativo viene eseguito in un contenitore.Each attempt runs in a container. In un certo senso, un contenitore offre il contesto per le unità di base del lavoro eseguito da un'applicazione YARN.In a sense, a container provides the context for basic unit of work performed by a YARN application. Tutto il lavoro fatto all'interno del contesto di un contenitore viene eseguito nel singolo nodo di lavoro in cui è stato allocato il contenitore.All work that is done within the context of a container is performed on the single worker node on which the container was allocated. Per altri riferimenti, vedere Concetti YARN.See YARN Concepts for further reference.

I log applicazione (e i log contenitore associati) sono essenziali per il debug di applicazioni Hadoop problematiche.Application logs (and the associated container logs) are critical in debugging problematic Hadoop applications. YARN offre un framework utile per la raccolta, l'aggregazione e l'archiviazione dei log applicazioni tramite la funzionalità di aggregazione dei log.YARN provides a nice framework for collecting, aggregating, and storing application logs with the Log Aggregation feature. La funzione di aggregazione dei log rende più deterministico l'accesso ai log dell'applicazione.The Log Aggregation feature makes accessing application logs more deterministic. Aggrega i log di tutti i contenitori in un nodo di lavoro e li archivia come file di log aggregati per ogni nodo di lavoro.It aggregates logs across all containers on a worker node and stores them as one aggregated log file per worker node. Quando un'applicazione termina, il log viene archiviato nel file system predefinito.The log is stored on the default file system after an application finishes. L'applicazione può usare centinaia o migliaia di contenitori, ma i log di tutti i contenitori eseguiti su un singolo nodo di lavoro vengono sempre aggregati in un unico file.Your application may use hundreds or thousands of containers, but logs for all containers run on a single worker node are always aggregated to a single file. Pertanto, sarà sempre disponibile un unico log per ogni nodo di lavoro usato dall'applicazione.So there is only 1 log per worker node used by your application. La funzione di aggregazione dei log è abilitata per impostazione predefinita nei cluster HDInsight versione 3.0 o successiva.Log Aggregation is enabled by default on HDInsight clusters version 3.0 and above. I log aggregati sono disponibili nella risorsa di archiviazione predefinita per il cluster.Aggregated logs are located in default storage for the cluster. Il percorso seguente è il percorso HDFS dei log:The following path is the HDFS path to the logs:

/app-logs/<user>/logs/<applicationId>

In questo percorso, user è il nome dell'utente che ha avviato l'applicazione eIn the path, user is the name of the user who started the application. applicationId è l'identificatore univoco assegnato a un'applicazione dall'oggetto YARN RM.The applicationId is the unique identifier assigned to an application by the YARN RM.

I log aggregati non sono leggibili direttamente perché vengono scritti in un oggetto TFile, un formato binario indicizzato dal contenitore.The aggregated logs are not directly readable, as they are written in a TFile, binary format indexed by container. Usare i log di YARN ResourceManager o gli strumenti dell'interfaccia della riga di comando per visualizzare i log come testo normale per le applicazioni o i contenitori di interesse.Use the YARN ResourceManager logs or CLI tools to view these logs as plain text for applications or containers of interest.

Strumenti dell’interfaccia di riga di comando YARNYARN CLI tools

Per utilizzare gli strumenti dell'interfaccia della riga di comando YARN, è innanzitutto necessario connettersi al cluster HDInsight tramite SSH.To use the YARN CLI tools, you must first connect to the HDInsight cluster using SSH. Per altre informazioni, vedere Usare SSH con HDInsight.For information, see Use SSH with HDInsight.

È possibile visualizzare questi log come testo normale eseguendo uno dei seguenti comandi:You can view these logs as plain text by running one of the following commands:

yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application>
yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> -containerId <containerId> -nodeAddress <worker-node-address>

Quando si eseguono questi comandi, specificare le informazioni relative a <applicationId>, <user-who-started-the-application>, <containerId> e <worker-node-address>.Specify the <applicationId>, <user-who-started-the-application>, <containerId>, and <worker-node-address> information when running these commands.

Interfaccia utente di ResourceManager YARNYARN ResourceManager UI

L'interfaccia utente di YARN ResourceManager viene eseguita sul nodo head del clusterThe YARN ResourceManager UI runs on the cluster headnode. ed è accessibile tramite l'interfaccia utente Web di Ambari.It is accessed through the Ambari web UI. Per visualizzare i log di YARN, procedere come segue:Use the following steps to view the YARN logs:

  1. Nel browser Web, accedere a https://CLUSTERNAME.azurehdinsight.net.In your web browser, navigate to https://CLUSTERNAME.azurehdinsight.net. Sostituire CLUSTERNAME con il nome del cluster HDInsight.Replace CLUSTERNAME with the name of your HDInsight cluster.
  2. Nell'elenco dei servizi a sinistra, selezionare YARN.From the list of services on the left, select YARN.

    Servizio Yarn selezionato

  3. Dall’elenco a discesa Collegamenti rapidi selezionare uno dei nodi head del cluster e quindi Log ResourceManager.From the Quick Links dropdown, select one of the cluster head nodes and then select ResourceManager Log.

    Collegamenti rapidi Yarn

    Viene visualizzato un elenco di collegamenti ai log YARN.You are presented with a list of links to YARN logs.