Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přečtěte si, jak získat přístup k protokolům pro aplikace Apache Hadoop YARN (Yet Another Resource Negotiator) v clusteru Apache Hadoop na platformě 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(RM), NodeManagery (NM) pro každý uzel pracovníka a ApplicationMastery (AMs) pro každou aplikaci. 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 rámci kontejneru, je vykonávána na konkrétním pracovním uzlu, kam byl kontejner přidě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 pro agregaci protokolů umožňuje snadnější přístup k aplikačním protokolům. 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.
Záznamy Yarn v clusteru ESP
Do vlastní mapred-site služby Ambari je potřeba přidat dvě konfigurace.
Ve webovém prohlížeči navigujte na
https://CLUSTERNAME.azurehdinsight.net, kdeCLUSTERNAMEje název vašeho clusteru.V uživatelském rozhraní Ambari přejděte na MapReduce2>Konfigurace>Pokročilé>Vlastní nastavení mapred-site.
Přidejte jednu z následujících sad vlastností:
Sada 1
mapred.acls.enabled=true mapreduce.job.acl-view-job=*Sada 2
mapreduce.job.acl-view-job=<user1>,<user2>,<user3>Uložte změny a restartujte všechny ovlivněné služby.
Nástroje rozhraní příkazového řádku YARN
Pomocí příkazu ssh se připojte ke clusteru. Upravte následující příkaz nahrazením CLUSTERNAME vaším názvem clusteru a poté zadejte příkaz:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.netPomocí následujícího příkazu vypíšete všechna ID aplikací aktuálně spuštěných aplikací Yarn:
yarn topPoznamenejte si ID aplikace ze
APPLICATIONIDsloupce, 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 ServerTyto 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
Pomocí následujícího příkazu získejte protokoly kontejnerů Yarn pro všechny hlavní uzly aplikací. Tento krok vytvoří soubor protokolu pojmenovaný
amlogs.txtv textovém formátu.yarn logs -applicationId <application_id> -am ALL > amlogs.txtPomocí 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.txtPomocí 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.txtPomocí následujícího příkazu stáhněte všechny protokoly kontejneru Yarn:
yarn logs -applicationId <application_id> > logs.txtPomocí 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:
Ve webovém prohlížeči přejděte na
https://CLUSTERNAME.azurehdinsight.net. Nahraďte CLUSTERNAME názvem clusteru HDInsight.V seznamu služeb vlevo vyberte YARN.
V rozevíracím seznamu Rychlé odkazy vyberte jeden z hlavních uzlů clusteru a pak vyberte
ResourceManager Log.
Zobrazí se seznam odkazů na protokoly YARN.