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.
Tento článek popisuje několik možností ladění, které jsou k dispozici pro vaši aplikaci Apache Spark:
- Uživatelské rozhraní Sparku
- Protokoly ovladačů
- Protokoly exekutoru
Vizte Diagnostika problémů s náklady a výkonem pomocí uživatelského rozhraní Sparku pro názorný postup v diagnostice těchto problémů pomocí uživatelského rozhraní Sparku.
Uživatelské rozhraní Sparku
Jakmile spustíte úlohu, uživatelské rozhraní Sparku zobrazí informace o tom, co se děje ve vaší aplikaci. K uživatelskému rozhraní Sparku se dostanete tak, že na stránce Compute vyberete výpočetní prostředky a pak kliknete na kartu Uživatelského rozhraní Sparku :
Karta Streamování
V uživatelském rozhraní Sparku se zobrazí karta Streamování, pokud je úloha streamování spuštěná na výpočetních prostředcích. Pokud v tomto výpočetním prostředí neběží žádná úloha streamování, tato karta se nezobrazí. Můžete přeskočit na protokoly ovladačů zjistit, jak zkontrolovat výjimky, ke kterým mohlo dojít při spuštění úlohy streamování.
Tato stránka umožňuje zkontrolovat, jestli vaše streamovaná aplikace přijímá z vašeho zdroje nějaké vstupní události. Můžete například vidět, že úloha přijímá 1 000 událostí za sekundu.
Poznámka
Pro TextFileStream, protože soubory jsou vstupní, počet vstupních událostí je vždy 0. V takových případech se můžete podívat na sekci Dokončené šarže v poznámkovém bloku, abyste zjistili, jak najít další informace.
Pokud máte aplikaci, která přijímá více vstupních datových proudů, můžete kliknout na odkaz Vstupní rychlost, který zobrazí počet přijatých událostí pro každého příjemce.
Doba zpracování
Když se posunete dolů, vyhledejte graf pro Doba zpracování. Toto je jeden z klíčových grafů, které vám porozumí výkonu úlohy streamování. Obecně platí, že je vhodné zpracovat každou dávku do 80% času určeného pro dávkové zpracování.
Pokud je průměrná doba zpracování blízká nebo větší než interval dávky, budete mít streamovací aplikaci, která začne vytvářet frontu, což brzy může vést k přetížení a nakonec k selhání vaší streamovací úlohy.
Dokončené dávky
Na konci stránky se zobrazí seznam všech dokončených dávek. Na stránce se zobrazí podrobnosti o posledních 1 000 dávkách, které se dokončily. Z tabulky můžete získat počet událostí zpracovaných pro každou dávku a jejich dobu zpracování. Pokud se chcete dozvědět více o tom, co se stalo v jedné z dávky, můžete kliknout na odkaz dávky a dostat se na stránku Podrobnosti dávky.
Stránka s podrobnostmi služby Batch
Stránka s podrobnostmi o dávce obsahuje všechny podrobnosti o dávce. Jsou to dvě klíčové věci:
- Vstup: Obsahuje podrobnosti o vstupu do šarže. V tomto případě obsahuje podrobnosti o tématu Apache Kafka, partici a posunech přečtených strukturovaným streamováním Spark pro tuto dávku. V případě TextFileStream se zobrazí seznam názvů souborů, které byly pro tuto dávku přečtené. Toto je nejlepší způsob, jak začít ladit streamovací aplikaci, která čte z textových souborů.
- Zpracování: Můžete kliknout na odkaz na ID úlohy, které obsahuje všechny podrobnosti o zpracování provedené během této dávky.
Stránka s podrobnostmi o pracovní pozici
Na stránce podrobností úlohy se zobrazuje vizualizace DAG. To je užitečné k pochopení pořadí operací a závislostí pro každou dávku. Může to například ukázat, že dávkové čtení vstupu z přímého datového proudu Kafka následované operací ploché mapy a pak operace mapování a že výsledný datový proud se pak použil k aktualizaci globálního stavu pomocí updateStateByKey.
Šedá pole představují přeskočené fáze. Spark je dostatečně inteligentní, aby přeskočil některé fáze, pokud je není potřeba přepočítávat. Pokud jsou data označená kontrolními body nebo jsou uložená v mezipaměti, Spark tyto fáze přeskočí. V předchozím příkladu streamování tyto fáze odpovídají závislosti na předchozích dávkách z důvodu updateStateBykey. Vzhledem k tomu, že Spark Structured Streaming interně používá kontrolní body streamu a čte z nich namísto závislosti na předchozích dávkách, jsou zobrazeny jako šedé fáze.
V dolní části stránky najdete také seznam úloh, které byly pro tuto dávku spuštěny. Kliknutím na odkazy v popisu můžete přejít k podrobnostem provádění na úrovni úlohy.
Stránka podrobností úkolu
Toto je nejpodrobnější úroveň ladění, ke které se můžete dostat z uživatelského rozhraní Sparku pro aplikaci Spark. Tato stránka obsahuje všechny úkoly, které byly pro tuto dávku provedeny. Pokud prošetřujete problémy s výkonem streamovací aplikace, pak tato stránka poskytuje informace, jako je počet spuštěných úloh a jejich provedení (na kterých exekutorech) a informace o shuffle operacích.
Spropitné
Ujistěte se, že se úlohy spouští na několika exekutorech (uzlech) ve výpočetním prostředí, aby během zpracování měly dostatek paralelismu. Pokud máte jednoho příjemce, může někdy fungovat pouze jeden vykonavatel, i když ve vašem výpočetním prostředí máte více než jednoho vykonavatele.
Výpis stavu vlákna
Výpis vláken zobrazuje snímek stavů vláken prostředí JVM.
Výpisy vláken jsou užitečné při ladění konkrétní zaseknuté nebo pomalu běžící úlohy. Výpis vlákna konkrétní úlohy si můžete prohlédnout v uživatelském rozhraní Sparku:
- Klikněte na kartu Úlohy.
- V tabulce Úlohy vyhledejte cílovou úlohu odpovídající výpisu vlákna, který chcete zobrazit, a klikněte na odkaz ve sloupci Popis.
- V tabulce Etapy úlohy vyhledejte cílovou etapu odpovídající výpisu z vlákna, který chcete zobrazit, a ve sloupci Popis klikněte na odkaz.
- V seznamu úkolů fáze vyhledejte cílovou úlohu, která odpovídá výpisu vlákna, který chcete zobrazit, a poznamenejte si jeho ID úlohy a hodnoty ID exekutoru .
- Klikněte na kartu Exekutoři.
- V tabulce Exekutory vyhledejte řádek obsahující hodnotu ID exekutoru , která odpovídá hodnotě ID exekutoru , kterou jste si poznamenali dříve. V tomto řádku klikněte na odkaz ve sloupci Výpis stavu vlákna.
- Ve výpisu vlákna pro spouštěč v tabulce
klikněte na řádek, ve kterém sloupec název vlákna obsahujeTID následovanou hodnotouID úlohy , kterou jste si poznamenali dříve. (Pokud se úloha dokončila, nenajdete odpovídající vlákno). Zobrazí se výpis stavu vlákna úlohy.
Výpisy vláken jsou také užitečné při ladění problémů, kdy se zdá, že ovladač je zablokovaný (například se nezobrazují žádné indikátory průběhu Sparku) nebo když u dotazů nenastává žádný pokrok (například indikátory průběhu Sparku uvízly na 100%). Zobrazení výpisu vláken ovladače v uživatelském rozhraní Sparku:
- Klikněte na kartu Exekutoři.
- V Exekutory tabulku v ovladači řádku klikněte na odkaz ve sloupci Výpis vláken. Zobrazí se výpis stavu vlákna ovladače.
Protokoly ovladačů
Protokoly ovladačů jsou užitečné v následujících případech:
- Výjimky: V uživatelském rozhraní Sparku se někdy nemusí zobrazit karta Streamování. Důvodem je to, že úloha streamování nebyla spuštěna kvůli určité výjimce. Můžete přejít k podrobnostem protokolů ovladačů a podívat se na trasování zásobníku výjimky. V některých případech se úloha streamování mohla správně spustit. Uvidíte ale všechny dávky, které nikdy nepřejdou do oddílu Dokončené dávky. Všechny mohou být ve stavu zpracování nebo ve stavu selhání. V těchto případech jsou protokoly ovladačů také užitečné, aby bylo možné pochopit povahu základních problémů.
- Tisk: Všechny příkazy print v rámci DAG se zobrazují také v protokolech.
Poznámka
Kdo má přístup k protokolům ovladačů, závisí na režimu přístupu výpočetního prostředku. Pro výpočetní prostředky s režimem přístupu Standard mají přístup k protokolům ovladačů pouze správci pracovního prostoru. Pro výpočty s režimem vyhrazeného přístupu můžou k protokolům ovladačů přistupovat vyhrazený uživatel nebo skupina a správci pracovního prostoru.
Protokoly exekutoru
Protokoly exekutoru jsou užitečné, pokud vidíte, že se některé úlohy chybně chovají a chcete zobrazit protokoly pro konkrétní úlohy. Na výše uvedené stránce podrobností úkolu můžete zjistit vykonavatele, na kterém byl úkol spuštěn. Jakmile to budete mít, můžete přejít na stránku výpočetního uživatelského rozhraní, kliknout na uzly # a potom na hlavní stránku. Hlavní stránka obsahuje seznam všech pracovníků. Můžete zvolit pracovníka, kde se podezřelá úloha spustila, a pak se dostat do výstupu log4j.
Poznámka
Protokoly spuštění nejsou k dispozici pro výpočetní operace v režimu Standard přístupu. Pro výpočetní prostředky s režimem vyhrazeného přístupu má vyhrazený uživatel nebo skupina a správci pracovního prostoru přístup k protokolům exekutoru.