Udostępnij za pośrednictwem


Co to jest środowisko obliczeniowe platformy Apache Spark w usłudze Microsoft Fabric?

Dotyczy:✅ Inżynieria danych i nauka o danych w usłudze Microsoft Fabric

Doświadczenia związane z inżynierią danych i nauką o danych w Microsoft Fabric działają na w pełni zarządzanej platformie obliczeniowej Apache Spark. Ta platforma została zaprojektowana w celu zapewnienia niezrównanej szybkości i wydajności. W przypadku pul startowych można oczekiwać szybkiej inicjowania sesji platformy Apache Spark, zwykle w ciągu 5 do 10 sekund, bez konieczności ręcznej konfiguracji. Uzyskasz również elastyczność dostosowywania pul platformy Apache Spark zgodnie z określonymi wymaganiami inżynierii danych i nauki o danych. Platforma umożliwia zoptymalizowane i dostosowane środowisko analityczne. Krótko mówiąc, pula startowa to szybki sposób korzystania ze wstępnie skonfigurowanej platformy Spark, a pula Spark oferuje dostosowywanie i elastyczność.

Obraz platformy obliczeniowej Spark z pulami startowymi i niestandardowymi pulami platformy Spark.

Pule początkowe

Pule początkowe to szybki i łatwy sposób korzystania z platformy Spark na platformie Microsoft Fabric w ciągu kilku sekund. Sesje Spark można używać od razu, zamiast czekać na skonfigurowanie węzłów dla ciebie, co ułatwia pracę z większą ilością danych i szybsze uzyskiwanie wglądów w dane.

Obraz przedstawiający tabelę przedstawiającą konfigurację puli początkowej.

Pule początkowe mają klastry Platformy Apache Spark z sesjami, które są zawsze włączone i gotowe do obsługi żądań. Używają średnich węzłów, które dynamicznie skalują się w górę na podstawie potrzeb zadań platformy Spark.

Diagram przedstawiający ogólny projekt pul startowych.

W przypadku korzystania z puli startowej bez dodatkowych zależności biblioteki lub niestandardowych właściwości platformy Sparksesja zazwyczaj rozpoczyna się w od 5 do 10 sekund. To szybkie uruchamianie jest możliwe, ponieważ klaster jest już uruchomiony i nie wymaga czasu aprowizacji.

Uwaga

Pule początkowe są obsługiwane tylko w przypadku średnich rozmiarów węzłów, a wybranie innych rozmiarów węzłów lub dostosowanie konfiguracji obliczeniowych spowoduje uruchomienie sesji na żądanie, co może potrwać od 2 do 5 minut

Istnieje jednak kilka scenariuszy, w których rozpoczęcie sesji może potrwać dłużej:

  1. Masz biblioteki niestandardowe lub właściwości platformy Spark
    Jeśli w środowisku skonfigurowano biblioteki lub ustawienia niestandardowe, platforma Spark musi spersonalizować sesję po jej utworzeniu. Ten proces może dodać około 30 sekund do 5 minut do czasu uruchomienia, w zależności od liczby i rozmiaru zależności biblioteki.

  2. pule startowe w Twoim regionie są w pełni używane
    W rzadkich przypadkach pule początkowe regionu mogą być tymczasowo wyczerpane z powodu dużego ruchu. W takim przypadku sieć szkieletowa uruchamia nowy klaster, aby obsłużyć żądanie, co zajmuje około 2 do 5 minut. Po udostępnieniu nowego klastra rozpocznie się sesja. Jeśli masz również biblioteki niestandardowe do zainstalowania, musisz dodać dodatkowe 30 sekund do 5 minut wymagane do personalizacji.

  3. zaawansowane funkcje sieci lub zabezpieczeń (łącza prywatne lub zarządzane sieci wirtualne)
    Jeśli obszar roboczy ma funkcje sieciowe, takie jak prywatne łącza dzierżawcy lub sieci wirtualne zarządzane, pule początkowe nie są obsługiwane. W takiej sytuacji sieć szkieletowa musi utworzyć klaster na żądanie, który dodaje 2 do 5 minut do czasu rozpoczęcia sesji. Jeśli masz również zależności biblioteki, ten krok personalizacji może ponownie dodać kolejny 30 sekund do 5 minut.

Oto kilka przykładowych scenariuszy ilustrujących potencjalne czasy rozpoczęcia:

Scenariusz Typowy czas uruchamiania
ustawienia domyślne bez bibliotek 5– 10 sekund
domyślne ustawienia i zależności biblioteki 5 – 10 sekund + 30 sekund – 5 minut (w przypadku konfiguracji biblioteki)
duży ruch w regionie, brak bibliotek 2 – 5 minut
Wysokie natężenie ruchu + zależności bibliotek 2 – 5 minut + 30 sekund – 5 minut (dla bibliotek)
zabezpieczenia sieci (łącza prywatne/sieć wirtualna), brak bibliotek 2 – 5 minut
Zabezpieczenia sieci i zależności biblioteki 2 – 5 minut + 30 sekund – 5 minut (dla bibliotek)

Jeśli chodzi o rozliczenia i zużycie pojemności, opłaty są naliczane za zużycie pojemności podczas uruchamiania notesu lub definicji zadania platformy Apache Spark. Opłaty nie są naliczane za czas nieaktywności klastrów w puli.

Diagram przedstawiający kluczowe etapy w rozliczeniach pul startowych.

Jeśli na przykład przesyłasz zadanie notatnika do puli początkowej, opłaty są naliczane tylko za okres, w którym sesja notatnika jest aktywna. Rozliczany czas nie obejmuje czasu bezczynności ani czasu potrzebnego do spersonalizowania sesji z kontekstem platformy Spark. Aby dowiedzieć się więcej, zobacz jak skonfigurować początkowe pule w Fabryce.

Pule zadań platformy Spark

Pula platformy Spark to sposób informowania platformy Spark o rodzajach zasobów potrzebnych do zadań analizy danych. Możesz nadać puli Spark nazwę oraz określić, ile jest węzłów i jakiej są wielkości (maszyny, które wykonują zadania). Możesz również poinformować platformę Spark, jak dostosować liczbę węzłów w zależności od ilości pracy. Tworzenie puli Spark jest bezpłatne; płacisz tylko wtedy, gdy uruchamiasz zadanie Spark na puli, a Spark konfiguruje węzły dla ciebie.

Jeśli nie używasz puli Spark przez 2 minuty po wygaśnięciu sesji, zostanie ona usunięta. Ten domyślny okres wygaśnięcia sesji jest ustawiony na 20 minut i można go zmienić, jeśli chcesz. Jeśli jesteś administratorem obszaru roboczego, możesz również utworzyć niestandardowe pule platformy Spark dla obszaru roboczego i ustawić je jako domyślną dla innych użytkowników. Dzięki temu możesz zaoszczędzić czas i uniknąć konfigurowania nowej puli Spark za każdym razem, gdy uruchamiasz notatnik lub zadanie platformy Spark. Uruchamianie niestandardowych pul platformy Spark trwa około trzech minut, ponieważ platforma Spark musi pobrać węzły z platformy Azure.

Można nawet utworzyć pule platformy Spark z jednym węzłem, ustawiając minimalną liczbę węzłów na jeden, dlatego sterownik i funkcja wykonawcza są uruchamiane w jednym węźle, który jest dostarczany z możliwością przywracania wysokiej dostępności i jest odpowiedni dla małych obciążeń.

Rozmiar i liczba węzłów, które można mieć w niestandardowej puli platformy Spark, zależy od pojemności usługi Microsoft Fabric. Pojemność to miara ilości mocy obliczeniowej, której można używać na platformie Azure. Jednym ze sposobów myślenia jest to, że dwa rdzenie wirtualne platformy Apache Spark (jednostka mocy obliczeniowej dla platformy Spark) są równe jednej jednostce pojemności.

Uwaga

Na platformie Apache Spark użytkownicy otrzymują dwa VCores Apache Spark za każdą jednostkę pojemności, którą rezerwują jako część SKU. Jedna jednostka pojemności = dwa rdzenie wirtualne platformy Spark, więc F64 => 128 rdzeni wirtualnych Spark i zastosowano na nim mnożnik intensywności 3x, co daje łącznie 384 rdzenie wirtualne Spark.

Na przykład jednostka SKU pojemności Fabric F64 ma 64 jednostki pojemności, co odpowiada 384 Spark VCores (64 * 2 * 3X Burst Multiplier). Za pomocą tych rdzeni wirtualnych Spark można tworzyć węzły o różnych rozmiarach dla niestandardowej puli Spark, o ile łączna liczba rdzeni wirtualnych Spark nie przekracza 384.

Pule Spark są rozliczane jak pule startowe; nie płacisz za utworzone niestandardowe pule Spark, chyba że masz aktywną sesję Spark utworzoną do uruchomienia notesu lub definicji zadania Spark. Opłaty są naliczane tylko za czas wykonania zadania. Po zakończeniu zadania nie są naliczane opłaty za etapy, takie jak tworzenie klastra i dealokacja.

Diagram przedstawiający wysokopoziomowe etapy w rozliczaniu pul niestandardowych.

Jeśli na przykład przesyłasz zadanie notesu do niestandardowej puli Spark, opłaty są naliczane tylko za okres, w którym sesja jest aktywna. Rozliczanie za tę sesję notatnika jest wstrzymywane po zatrzymaniu lub wygaśnięciu sesji platformy Spark. Nie są naliczane opłaty za czas potrzebny na uzyskanie wystąpień klastra z chmury ani na czas potrzebny na zainicjowanie kontekstu platformy Spark.

Możliwe konfiguracje niestandardowej puli dla F64 w oparciu o poprzedni przykład. Mniejsze rozmiary węzłów mają pojemność rozłożoną na więcej węzłów, więc maksymalna liczba węzłów jest wyższa. Większe węzły są bogate w zasoby, dlatego potrzebne jest mniej węzłów:

SKU pojemności materiału Jednostki pojemności Maksymalna liczba rdzeni VCore programu Spark ze współczynnikiem zwiększenia Rozmiar węzła Maksymalna liczba węzłów
F64 64 384 Mały 96
F64 64 384 Średni 48
F64 64 384 Duży 24
F64 64 384 X-Large 12
F64 64 384 XX-Duży 6

Uwaga

Aby utworzyć pule niestandardowe, musisz mieć uprawnienia administratora dla obszaru roboczego. Administrator pojemności usługi Microsoft Fabric musi udzielić uprawnień, aby umożliwić administratorom obszaru roboczego dostosowanie rozmiaru niestandardowych pul Spark. Aby dowiedzieć się więcej, zobacz Rozpocznij pracę z niestandardowymi pulami Spark w Fabric.

Węzły

Wystąpienie puli platformy Apache Spark składa się z jednego węzła głównego i węzłów roboczych, może rozpocząć się od co najmniej jednego węzła w wystąpieniu platformy Spark. Węzeł główny uruchamia dodatkowe usługi zarządzania, takie jak Livy, Yarn Resource Manager, Zookeeper i sterownik Apache Spark. Wszystkie węzły uruchamiają usługi, takie jak Node Agent i Yarn Node Manager. Wszystkie węzły robocze uruchamiają usługę funkcji wykonawczej platformy Apache Spark.

Rozmiary węzłów

Pulę platformy Spark można zdefiniować z rozmiarami węzłów, które wahają się od małego węzła obliczeniowego (z 4 rdzeniami wirtualnymi i 32 GB pamięci) do dwukrotnie dużego węzła obliczeniowego (z 64 rdzeniami wirtualnymi i 512 GB pamięci na węzeł). Rozmiary węzłów można zmienić po utworzeniu puli, chociaż należy ponownie uruchomić aktywną sesję.

Rozmiar rdzeń wirtualny Pamięć
Mały 4 32 GB
Średni 8 64 GB
Duży 16 128 GB
X-Large 32 256 GB
XX-Duży 64 512 GB

Uwaga

Rozmiary węzłów X-Large i XX-Large są dozwolone tylko dla SKU Fabric spoza wersji próbnej.

Skalowanie automatyczne

Automatyczne skalowanie dla pul platformy Apache Spark umożliwia automatyczne skalowanie w górę i w dół zasobów obliczeniowych na podstawie ilości działań. Po włączeniu funkcji autoskalowania należy ustawić minimalną i maksymalną liczbę węzłów do skalowania. Po wyłączeniu funkcji autoskalowania liczba ustawionych węzłów pozostaje stała. To ustawienie można zmienić po utworzeniu puli, chociaż może być konieczne ponowne uruchomienie instancji.

Uwaga

Domyślnie parametr spark.yarn.executor.decommission.enabled ma wartość true, co umożliwia automatyczne wyłączanie niewykorzystanych węzłów w celu maksymalizacji wydajności obliczeniowej. Jeśli preferowane jest mniej agresywne skalowanie w dół, można ustawić tę konfigurację na wartość false

Alokacja dynamiczna

Alokacja dynamiczna umożliwia aplikacji Apache Spark żądanie większej liczby funkcji wykonawczych, jeśli zadania przekraczają obciążenie, które mogą ponosić bieżące funkcje wykonawcze. Zwalnia również funkcje wykonawcze po zakończeniu zadań, a jeśli aplikacja Spark przechodzi do stanu bezczynności. Użytkownikom korporacyjnym często jest trudno dostroić konfiguracje wykonawcze, ponieważ znacznie się różnią na różnych etapach procesu wykonywania zadania Spark. Te konfiguracje są również zależne od ilości przetworzonych danych, co zmienia się od czasu do czasu. Możesz włączyć dynamiczną alokację funkcji wykonawczych w ramach konfiguracji puli, która umożliwia automatyczną alokację funkcji wykonawczych do aplikacji Spark na podstawie węzłów dostępnych w puli Spark.

Po włączeniu opcji alokacji dynamicznej dla każdej przesłanej aplikacji Spark system rezerwuje egzekutory na podstawie minimalnej liczby węzłów podczas kroku przesyłania zadania. Należy określić maksymalną liczbę węzłów do obsługi pomyślnych scenariuszy automatycznego skalowania.