Få åtkomst till Apache Hadoop YARN-programloggar i Linux-baserat HDInsight
Lär dig hur du kommer åt loggarna för Apache Hadoop YARN-program (ännu en resursförhandlare) i ett Apache Hadoop-kluster i Azure HDInsight.
Vad är Apache YARN?
YARN stöder flera programmeringsmodeller (Apache Hadoop MapReduce är en av dem) genom att koppla bort resurshantering från programschemaläggning/övervakning. YARN använder en global ResourceManager
(RM), nodeManagers (NMs) per arbetsnod och applicationmasters (AMs) per program. AM per program förhandlar om resurser (CPU, minne, disk, nätverk) för att köra programmet med RM. RM arbetar med NMs för att bevilja dessa resurser, som beviljas som containrar. AM ansvarar för att spåra förloppet för de containrar som tilldelats till den av RM. Ett program kan kräva många containrar beroende på programmets natur.
Varje program kan bestå av flera programförsök. Om ett program misslyckas kan det göras ett nytt försök. Varje försök körs i en container. På sätt och vis ger en container kontexten för grundläggande arbetsenhet som utförs av ett YARN-program. Allt arbete som utförs i kontexten för en container utförs på den enda arbetsnod som containern har angetts för. Mer information finns i Hadoop: Skriva YARN-program eller Apache Hadoop YARN .
Om du vill skala klustret för att stödja större dataflöde för bearbetning kan du använda Autoskalning eller Skala dina kluster manuellt med några olika språk.
YARN Timeline Server
Apache Hadoop YARN Timeline Server innehåller allmän information om slutförda program
YARN Timeline Server innehåller följande typ av data:
- Program-ID, en unik identifierare för ett program
- Användaren som startade programmet
- Information om försök att slutföra programmet
- De containrar som används av ett visst programförsök
YARN-program och -loggar
Programloggar (och tillhörande containerloggar) är viktiga vid felsökning av problematiska Hadoop-program. YARN tillhandahåller ett trevligt ramverk för att samla in, aggregera och lagra programloggar med Log Aggregation.
Log Aggregation-funktionen gör det mer deterministiskt att komma åt programloggar. Den aggregerar loggar över alla containrar på en arbetsnod och lagrar dem som en aggregerad loggfil per arbetsnod. Loggen lagras i standardfilsystemet när ett app har avslutats. Ditt program kan använda hundratals eller tusentals containrar, men loggar för alla containrar som körs på en enda arbetsnod aggregeras alltid till en enda fil. Så det finns bara en logg per arbetsnod som används av ditt program. Loggaggregering är aktiverat som standard för HDInsight-kluster version 3.0 och senare. Aggregerade loggar finns på standardlagringsplatsen för klustret. Följande sökväg är HDFS-sökvägen till loggarna:
/app-logs/<user>/logs/<applicationId>
I sökvägen user
är namnet på den användare som startade programmet. applicationId
är den unika identifierare som tilldelats ett program av YARN RM.
De aggregerade loggarna är inte direkt läsbara eftersom de skrivs i ett TFile
binärt format som indexeras av containern. Använd YARN-loggarna ResourceManager
eller CLI-verktygen för att visa loggarna som oformaterad text för program eller containrar av intresse.
Yarn-loggar i ett ESP-kluster
Två konfigurationer måste läggas till i den anpassade mapred-site
i Ambari.
Från en webbläsare går du till
https://CLUSTERNAME.azurehdinsight.net
, därCLUSTERNAME
är namnet på klustret.Från Ambari-användargränssnittet går du till MapReduce2>Configs>Advanced>Custom mapred-site.
Lägg till en av följande uppsättningar med egenskaper:
Ange 1
mapred.acls.enabled=true mapreduce.job.acl-view-job=*
Ange 2
mapreduce.job.acl-view-job=<user1>,<user2>,<user3>
Spara ändringar och starta om alla berörda tjänster.
YARN CLI-verktyg
Använd ssh-kommandot för att ansluta till klustret. Redigera följande kommando genom att ersätta CLUSTERNAME med namnet på klustret och ange sedan kommandot:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Visa en lista över alla program-ID:t för de Yarn-program som körs med följande kommando:
yarn top
Observera program-ID:t från kolumnen
APPLICATIONID
vars loggar ska laddas ned.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
Du kan visa dessa loggar som oformaterad text genom att köra något av följande kommandon:
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>
<Ange informationen applicationId>, <user-who-started-the-application>, <containerId> och <worker-node-address> när du kör dessa kommandon.
Andra exempelkommandon
Ladda ned Yarn-containerloggar för alla programhanterare med följande kommando. Det här steget skapar loggfilen med namnet
amlogs.txt
i textformat.yarn logs -applicationId <application_id> -am ALL > amlogs.txt
Ladda ned Yarn-containerloggar för endast den senaste programhanteraren med följande kommando:
yarn logs -applicationId <application_id> -am -1 > latestamlogs.txt
Ladda ned YARN-containerloggar för de två första programbakgrunderna med följande kommando:
yarn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
Ladda ned alla Yarn-containerloggar med följande kommando:
yarn logs -applicationId <application_id> > logs.txt
Ladda ned yarn-containerloggen för en viss container med följande kommando:
yarn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
YARN-användargränssnitt ResourceManager
YARN-användargränssnittet ResourceManager
körs på klustrets huvudnod. Den nås via Ambari-webbgränssnittet. Använd följande steg för att visa YARN-loggarna:
I webbläsaren navigerar du till
https://CLUSTERNAME.azurehdinsight.net
. Ersätt KLUSTERNAMN med namnet på ditt HDInsight-kluster.Välj YARN i listan över tjänster till vänster.
I listrutan Snabblänkar väljer du en av klusterhuvudnoderna och väljer
ResourceManager Log
sedan .Du visas med en lista med länkar till YARN-loggar.