Přístup k protokolům aplikací Apache Hadoop YARN ve službě HDInsight v Linuxu

Přečtěte si, jak získat přístup k protokolům pro aplikace Apache Hadoop YARN (Ještě jiného vyjednávače prostředků) v clusteru Apache Hadoop ve službě Azure HDInsight.

Co je Apache YARN?

YARN podporuje více programovacích modelů (Apache Hadoop MapReduce je jedním z nich) oddělením správy prostředků od plánování a monitorování aplikací. YARN používá globální ResourceManager uzel (RM), nodeManager pro pracovní proces (NM) a application ApplicationMasters (AMs). AM pro jednotlivé aplikace vyjedná prostředky (procesor, paměť, disk, síť) pro spuštění aplikace pomocí RM. RM spolupracuje s NM na udělení těchto prostředků, které jsou uděleny jako kontejnery. AM zodpovídá za sledování průběhu kontejnerů, které k němu přiřadil RM. Aplikace může vyžadovat mnoho kontejnerů v závislosti na povaze aplikace.

Každá aplikace se může skládat z několika pokusů o aplikaci. Pokud aplikace selže, může se opakovat jako nový pokus. Každý pokus se spustí v kontejneru. Kontejner poskytuje kontext pro základní jednotku práce prováděnou aplikací YARN. Veškerá práce, která se provádí v kontextu kontejneru, se provádí na jednom pracovním uzlu, na kterém byl kontejner udělen. Viz Hadoop: Psaní aplikací YARN nebo Apache Hadoop YARN pro další referenci.

Pokud chcete cluster škálovat tak, aby podporoval větší propustnost zpracování, můžete clustery škálovat ručně pomocí několika různých jazyků.

Server časové osy YARN

Server časové osy Apache Hadoop YARN poskytuje obecné informace o dokončených aplikacích.

Server časové osy YARN obsahuje následující typ dat:

  • ID aplikace, jedinečný identifikátor aplikace
  • Uživatel, který aplikaci spustil
  • Informace o pokusech o dokončení aplikace
  • Kontejnery používané jakýmkoli pokusem o aplikaci

Aplikace a protokoly YARN

Protokoly aplikací (a přidružené protokoly kontejnerů) jsou důležité při ladění problematických aplikací Hadoop. YARN poskytuje pěknou architekturu pro shromažďování, agregaci a ukládání aplikačních protokolů pomocí agregace protokolů.

Funkce Agregace protokolu zajišťuje přístup k aplikačním protokolům deterministicky. Agreguje protokoly napříč všemi kontejnery na pracovním uzlu a ukládá je jako jeden agregovaný soubor protokolu na pracovní uzel. Protokol je po dokončení aplikace uložen ve výchozím systému souborů. Vaše aplikace může používat stovky nebo tisíce kontejnerů, ale protokoly pro všechny kontejnery spuštěné na jednom pracovním uzlu se vždy agregují do jednoho souboru. Aplikace tedy používá pouze jeden protokol na pracovní uzel. Agregace protokolů je ve výchozím nastavení povolená v clusterech HDInsight verze 3.0 a vyšší. Agregované protokoly jsou umístěny ve výchozím úložišti clusteru. Následující cesta je cesta HDFS k protokolům:

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

V cestě je jméno uživatele, user který aplikaci spustil. Jedná se applicationId o jedinečný identifikátor přiřazený aplikaci pomocí RM YARN.

Agregované protokoly nejsou přímo čitelné, protože jsou napsané v binárním TFileformátu indexovaném kontejnerem. Tyto protokoly můžete zobrazit jako prostý text pro aplikace nebo kontejnery, které jsou zajímavé, pomocí protokolů YARN ResourceManager nebo nástrojů rozhraní příkazového řádku.

Protokoly Yarn v clusteru ESP

Do vlastní mapred-site služby Ambari je potřeba přidat dvě konfigurace.

  1. Ve webovém prohlížeči přejděte do https://CLUSTERNAME.azurehdinsight.netumístění , kde CLUSTERNAME je název vašeho clusteru.

  2. V uživatelském rozhraní Ambari přejděte na MapReduce2>Configs>Advanced Custom>mapred-site.

  3. Přidejte jednu z následujících sad vlastností:

    Nastavit 1

    mapred.acls.enabled=true
    mapreduce.job.acl-view-job=*
    

    Nastavit 2

    mapreduce.job.acl-view-job=<user1>,<user2>,<user3>
    
  4. Uložte změny a restartujte všechny ovlivněné služby.

Nástroje rozhraní příkazového řádku YARN

  1. Pomocí příkazu ssh se připojte ke clusteru. Upravte následující příkaz nahrazením clusteru názvem clusteru a zadáním příkazu:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Pomocí následujícího příkazu vypíšete všechna ID aplikací aktuálně spuštěných aplikací Yarn:

    yarn top
    

    Poznamenejte si ID aplikace ze APPLICATIONID sloupce, jehož protokoly se mají stáhnout.

    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. Tyto protokoly můžete zobrazit jako prostý text spuštěním jednoho z následujících příkazů:

    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>
    

    <Zadejte informace o adrese applicationId>, <user-who-started-the-application>, <containerId> a <worker-node-address> při spuštění těchto příkazů.

Další ukázkové příkazy

  1. Pomocí následujícího příkazu stáhněte protokoly kontejnerů Yarn pro všechny hlavní servery aplikací. Tento krok vytvoří soubor protokolu pojmenovaný amlogs.txt v textovém formátu.

    yarn logs -applicationId <application_id> -am ALL > amlogs.txt
    
  2. Pomocí následujícího příkazu stáhněte protokoly kontejneru Yarn pouze pro nejnovější hlavní server aplikací:

    yarn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    
  3. Pomocí následujícího příkazu stáhněte protokoly kontejneru YARN pro první dva hlavní servery aplikací:

    yarn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    
  4. Pomocí následujícího příkazu stáhněte všechny protokoly kontejneru Yarn:

    yarn logs -applicationId <application_id> > logs.txt
    
  5. Pomocí následujícího příkazu stáhněte protokol kontejneru yarn pro konkrétní kontejner:

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

Uživatelské rozhraní YARN ResourceManager

Uživatelské rozhraní YARN ResourceManager běží na hlavním uzlu clusteru. Je přístupný prostřednictvím webového uživatelského rozhraní Ambari. K zobrazení protokolů YARN použijte následující postup:

  1. Ve webovém prohlížeči přejděte na https://CLUSTERNAME.azurehdinsight.net. Nahraďte CLUSTERNAME názvem clusteru HDInsight.

  2. V seznamu služeb vlevo vyberte YARN.

    Apache Ambari Yarn service selected.

  3. V rozevíracím seznamu Rychlé odkazy vyberte jeden z hlavních uzlů clusteru a pak vyberte ResourceManager Log.

    Apache Ambari Yarn quick links.

    Zobrazí se seznam odkazů na protokoly YARN.

Další kroky