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 TFile
formá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.
Ve webovém prohlížeči přejděte do
https://CLUSTERNAME.azurehdinsight.net
umístění , kdeCLUSTERNAME
je název vašeho clusteru.V uživatelském rozhraní Ambari přejděte na MapReduce2>Configs>Advanced Custom>mapred-site.
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>
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 clusteru názvem clusteru a zadáním příkazu:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
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
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
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
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
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
Pomocí následujícího příkazu stáhněte všechny protokoly kontejneru Yarn:
yarn logs -applicationId <application_id> > logs.txt
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:
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.