• Przejdź do treści
  • Przejdź to drugiego menu
  • Przejdź do głównego paska bocznego
  • Przejdź do stopki
  • START
  • BLOG
  • NEWSLETTER
  • KIM JESTEM
  • KONTAKT
Cegładanych

Cegładanych

Dane - Databricks i Chmura Azura

  • Azure
  • Databricks
  • Spark
  • Etl
  • Engineering
  • AI

Spark – Jakie ma komponenty ?

23.11.2024 Krzysztof Nojman

Sparkcontext

Sterownik (sparkcontext)

Bardzo ważnym elementem Sparka jest Sparkcontext, jest to główny obiekt aplikacji. Zajmuje się on koordynacją procesów aplikacji. W bezpośrednim tłumaczeniu jest to główny ‘sterownik’, który jest niezbędny w całym cyklu życia aplikacji w klastrze. Każda aplikacja ma własne procesy wykonujące zadania. 

Kierownik klastra

Nasz Sparkcontext łączy się z kilkoma managerami klastra: 

Ich zadaniem jest przypisanie zasobów dla aplikacji. Do przetwarzania danych spark potrzebuje programów wykonawczych (Executorów), które zajmują się obliczeniami i mają dostęp do danych (w Azure  Databricksy są oparte na wirtualnych maszynach), które zajmują się przetwarzaniem danych. 

Typy menedżera klastrów

  • Standalone – prosty menedżer klastrów dołączony do Spark.
  • Apache Mesos – ogólny menedżer klastra, który może również uruchamiać Hadoop MapReduce.
  • Hadoop YARN – menedżer zasobów w Hadoop 2.
  • Kubernetes – system typu open source do automatyzacji wdrażania, skalowania i zarządzania aplikacjami kontenerowymi.

Wykonawcy (Executors)

Sterownik wysyła zadania do uruchomienia. Klaster manager komunikuje się z programami wykonawczymi i przydziela im zasoby. Spark również komunikuje się bezpośrednio z węzłami klastów (nodes). Każdy wykonawca jest odpowiedzialny za uruchomienie kodu i raportowanie stanu wykonania do sterownika. 

Izolacja

Każda aplikacja ma swój własny proces wykonawczy działający wielowątkowo. Trzeba dodać, że aplikacje działają w izolacji. Każdy sterownik planuje swoje własne zadania. Po stronie wykonawczej każda aplikacja działa na osobnej maszynie JVM. Zapewnia to izolacje aplikacji i procesów a tym samym ma wpływ na stan systemu i jego osiągi.

Niezależność

Spark jest niezależny od głównego menedżera klastra. Może się on komunikować z wykonawcami. 

Sieć

Sterownik musi być w ciągłej komunikacji z wykonawcami, a tym samym z siecią węzłów roboczych. Najkorzystniej jest, aby sterownik był w tej samej sieci lokalnej.

Interfejs Spark 

Każdy program sterownika ma swój własny interfejs, dostępny na porcie  4040. Pozwala on monitorować wykonywane zadania. Można użyć przeglądarki i pod adresem http://<driver-node>:4040 będą dostępne dane z interfejsu. Jest to dostępne w lokalnej instalacji Spark. w Databricks mamy już dostępny interfejs webowy.

W Databricks jest on dostępny po wejściu na zakładkę “Clusters” otwieramy dostępny klaster. W górnej części pojawią się taby – kliknij na Spark UI, tam będą dostępne aktualne informacje o Sparku.

Tutaj mamy dostępne następujące elementy.

Jobs (zadania)

Tutaj widać zadania na osi czasu. Pokazuje zdarzenia w aplikacji Spark. Zadania są uruchamiane przez akcje, a nie transformacje. Akcję to np count(), saveAsTextFile(). Będziemy tutaj widzieć zadania równoległe, jakie są przetwarzanie przez wykonawców. Widok pozwala na wgląd w dane dla trzech różnych statystyk. 

Widok pokazuje wszystkie zadania, i ich etapy. Najważniejszym elementem są zadania aktywne i wykonane. Możesz dowiedzieć się o tym, jak Spark wykonuje zadania aplikacji. Ten element jest bardzo ważny podczas debugowania / monitorowania aplikacji. Pozwala dowiedzieć się o poszczególnych etapach zadania. Jeśli wystąpią jakieś nieudane etapy, to powinno nas to zaalarmować.

Job Id (Job Group)  – unikatowy ID zadania. Dzięki temu możemy go śledzić, a właściwie jego cykl życiowy
Description – tutaj są dodatkowe informacje pozwalające znaleźć więcej informacji o poszczególnych elementach zadania
Submitted – data i czas kiedy zadanie się rozpoczęło
Duration – czas wykonania
Stages: Succeeded/Total – ilość etapów, wszystkich i tych które ukończyły poprawnie
Tasks (for all stages): Succeeded/Total – zadania dla każdego etapu

Spark Jobs

Najnowsza wersja Spark wyświetla DAG wykonania dla każdego zadania. DAG – Direct Acyclic Graph czyli Bezpośredni Wykres Acykliczny. Tutaj link do wyjaśnienia procesu. Ten artykuł jest oparty na darmowej wersji Databricks Community Edition, która nie daje takiej opcji.

Stages (etapy)

Zadania dzielą się na etapy. Tutaj zobaczymy pojedyncze etapy każdego z zadań. Będzie widać jak, rozmieszczone są partycje na różnych komputerach. Ten widok pokaże nam, ile zadań jest przetwarzanych przez wykonawców. To pozwoli nam podjąć decyzje czy zwiększyć ilość rdzeni. Każdy nieudany etap powinien być alarmujący.

Stage Id – unikatowe id etapu
Pool Name – id pool
Description – jak w przypadku zadań są tutaj bardziej szczegółowe informacje dotyczące poszczególnych etapów. Można je odnaleźć po id, runid
Submitted – data i czas wykonania
Duration – czas wykonania
Tasks: Succeeded/Total – ilość poszczególnych tasków w etapie.
Input – ilość danych wejściowych wczytanych z dysku
Output – ilość danych wyjściowych zapisanych na dysk
Shuffle Read – liczba bajtów z wczytanych rekordów, dane lokalne i ze zdalnych wykonawców (proces tasowania 'shuffle’ )
Shuffle Write – bajty i rekordy zapisane na dysk, które będą użyte w procesie tasowania 'shuffle’

Spark Stages

Storage (dysk)

Informacje dotyczące danych. Witać że na tym klastrze wiele nie ma. Ale to da się zmienić.

SparkUI Storage

Environment (środowisko)

Ta strona zawiera informacje o środowisku węzłów wykonawczych. Czyli najważniejsze informacje wersja Java, Scala i dane Spark.

SparkUI Environment

Executors (wykonawcy)

Tutaj są dostępne informacje o węzłach wykonawczych. Każdy węzeł jest opisany i widać jakie ma zasoby.

Spark UI Executors

SQL

W tym miejscu sprawdzisz plan jakim jest wykonany przez silnik SQL. 

SparkUI SQL

JDBC/ODBC Server

Tutaj znajdziesz wszystkie dane dotyczące aktualnych połączeń JDBC. Na poniższym obrazku widać że nie mam żadnych połączeń.

SparkUI JDBC

W kategorii:Spark Tagi:Spark

Big Data ebook
Subskrybuj
Powiadom o
guest

guest

0 Komentarze
Najstarsze
Najnowsze Najwięcej głosów
Opinie w linii
Zobacz wszystkie komentarze

Pierwszy panel boczny

O MNIE

Narzędzia i dobre procesy do przetwarzania danych to podstawa sukcesu i wartości dla firmy. Czytaj więcej…

big data ebook

Ostatnie wpisy

Jak zainstalować Python whl na Serverless

15.02.2026 By Krzysztof Nojman

Jak efektywnie korzystać z Databricks Assistant – 5 sprawdzonych praktyk

16.11.2025 By Krzysztof Nojman

Databricks DQX

Jakość danych w Databricks DQX

28.01.2025 By Krzysztof Nojman

Linki społecznościowe

  • Facebook
  • GitHub
  • LinkedIn
  • YouTube

Wyszukiwanie

Footer

Najnowsze wpisy

  • Databricks Klastry
  • Jak zainstalować Python whl na Serverless
  • Jak efektywnie korzystać z Databricks Assistant – 5 sprawdzonych praktyk
  • Jakość danych w Databricks DQX
  • Jak Spark robi join?
  • Czy JSON to samo zło
  • VS Code nowości AI 

Tagi

AI Apache Spark Architektura Azure BIg Data Certyfikat cloud Databricks Data Factory Dataframe DQX ETL Hurtownia Danych Intellij IoT Jaka technologia Join Kod Konfiguracja lakehouse Narzędzia Optymalizacja pyspark Spark Windows 10 zadania

Informacje Prawne

To jest nudna część lecz wymagana, wszystkie notki prawne o stronie znajdziecie tutaj.

Polityka Prywatności

Regulamin

Copyright © 2026 · Wszelkie prawa zastrzeżone. Krzysztof Nojman

wpDiscuz