Udostępnij przez


Limity współbieżności i kolejkowanie na platformie Apache Spark dla usługi Microsoft Fabric

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

Usługa Microsoft Fabric umożliwia przydzielanie jednostek obliczeniowych za pośrednictwem pojemności, czyli dedykowanego zestawu zasobów, które są dostępne w danym momencie. Pojemność definiuje zdolność zasobu do wykonywania działania lub generowania danych wyjściowych. Różne elementy zużywają w określonym czasie inną pojemność. Usługa Microsoft Fabric oferuje pojemność za pośrednictwem jednostek SKU Fabric i wersji próbnych. Aby uzyskać więcej informacji, zobacz Co to jest pojemność?.

Gdy użytkownicy tworzą pojemność usługi Microsoft Fabric na platformie Azure, wybierają rozmiar pojemności na podstawie rozmiaru obciążenia analitycznego. 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

Po zakupie pojemności administratorzy mogą tworzyć obszary robocze w ramach pojemności w usłudze Microsoft Fabric. Rdzenie obliczeniowe Spark związane z pojemnością są współużytkowane przez wszystkie elementy oparte o Apache Spark, takie jak notesy, definicje zadań Apache Spark i komponenty typu lakehouse utworzone w tych ekosystemach roboczych.

Kontrola współbieżności i zarządzanie kolejkowaniem

Platforma Spark for Fabric wymusza mechanizm ograniczania i kolejkowania oparty na rdzeniach, pozwalając użytkownikom na przesyłanie zadań w oparciu o zakupione jednostki SKU pojemności Fabric. Mechanizm kolejkowania to prosta kolejka oparta na zasadzie FIFO, która sprawdza dostępne miejsca na zadania i automatycznie ponawia próby uruchomienia zadań po udostępnieniu pojemności.

Gdy użytkownicy przesyłają zadania notesu lub lakehouse (takie jak Ładowanie do tabeli) i pojemność jest na maksymalnej wydajności z powodu współbieżnych zadań wykorzystujących wszystkie rdzenie wirtualne Spark, otrzymują następujący błąd:

HTTP Response code 430: This Spark job can't be run because you have hit a Spark compute or API rate limit. To run this Spark job, cancel an active Spark job through the Monitoring hub, or choose a larger capacity SKU or try again later.

Po włączeniu kolejkowania zadania powiązane z notebookami wyzwalane z potoków, harmonogramu zadań i definicji zadań platformy Spark są dodawane do kolejki i automatycznie ponawiane, gdy udostępniona zostaje pojemność.

Uwaga

Wygaśnięcie kolejki jest ustawione na 24 godziny od czasu przesłania zadania. Po upływie tego okresu zadania zostaną usunięte z kolejki i muszą zostać ponownie przesłane ręcznie.

Pojemności sieci szkieletowej są również włączone ze wzrostem wydajności, co pozwala na użycie maksymalnie 3× liczbę zakupionych rdzeni wirtualnych platformy Spark. Ten wzrost pomaga zwiększyć współbieżność, umożliwiając równoległe uruchamianie większej liczby zadań.

Uwaga

Współczynnik zwiększania szybkości zwiększa łączną liczbę rdzeni wirtualnych platformy Spark na potrzeby współbieżności i może być używane przez jedno zadanie, jeśli pula Spark jest skonfigurowana z wyższą liczbą rdzeni.
Innymi słowy, konfiguracja puli określa maksymalną liczbę rdzeni, których może używać zadanie — a nie tylko podstawową alokację jednostki SKU.

Przykład

Jeśli masz jednostkę SKU F64 z maksymalnymi 384 rdzeniami Spark ze współczynnikiem wzrostowym:

  • Możesz skonfigurować niestandardową lub początkową pulę z maksymalnie 384 rdzeniami wirtualnymi platformy Spark.
  • Jeśli administrator obszaru roboczego utworzy taką pulę, pojedyncze zadanie platformy Spark (np. notatnik, definicja zadania lub zadanie typu lakehouse) może używać wszystkich 384 rdzeni wirtualnych.
  • Przykład: Pula z węzłami Medium (z 8 rdzeniami wirtualnymi każda) i maksymalną liczbą 48 węzłów = 384 rdzeni wirtualnych.

Wskazówka

Aby zmaksymalizować wydajność zadania, upewnij się, że pula obszarów roboczych jest skonfigurowana przy użyciu wystarczającego rozmiaru i liczby węzłów.

Limity jednostek SKU pojemności platformy Spark

Jednostka SKU pojemności sieci fabricowej Równoważna jednostka SKU usługi Power BI Rdzenie wirtualne Spark Maksymalna liczba rdzeni wirtualnych Spark z czynnikiem zwiększenia Limit kolejki
F2 - 4 20 4
F4 - 8 24 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 Zobacz materiał P3 512 1536 256
F512 P4 1024 3072 512
F1024 - 2048 6144 1024
F2048 - 4096 12288 2048
Pojemność wersji próbnej P1 128 128 NIE

Ważne

Tabela ma zastosowanie tylko do zadań Spark uruchomionych w ramach pojemności Fabric. W przypadku włączenia rozliczeń za automatyczne skalowanie, zadania Spark są uruchamiane oddzielnie od pojemności Fabric, co pozwala uniknąć przebijania lub wygładzania. Łączna liczba rdzeni wirtualnych platformy Spark będzie dwa razy większa niż maksymalna liczba jednostek pojemności ustawionych w ustawieniach skalowania automatycznego.

Przykład obliczenia

  • Jednostka SKU F64 oferuje 128 rdzeni wirtualnych platformy Spark.
  • Dzięki współczynnikowi serii 3 obsługuje do 384 rdzeni wirtualnych platformy Spark na potrzeby współbieżnego wykonywania.
  • Jeśli pula jest skonfigurowana z pełnymi 384 rdzeniami wirtualnymi, pojedyncze zadanie może z nich korzystać, przy założeniu, że żadne inne zadania nie zużywają pojemności.
  • Przykład: 3 zadania korzystające z 128 rdzeni wirtualnych mogą być uruchamiane współbieżnie LUB 1 zadanie przy użyciu 384 rdzeni wirtualnych.

Uwaga

Zadania mają 24-godzinny okres wygaśnięcia w kolejce, po którym są anulowane, a użytkownicy muszą ponownie je przesłać do wykonania.

Ograniczanie zasobów w Spark dla systemu Fabric nie przewiduje dowolnych limitów opartych na zadaniach, a zależy jedynie od liczby rdzeni dopuszczonych dla zakupionej pojemności SKU systemu Fabric. Domyślnie wstęp do pracy jest optymistyczną kontrolą przyjęć, gdzie miejsca pracy są dopuszczone na podstawie minimalnych wymagań podstawowych. Dowiedz się więcej: Przyjęcie i zarządzanie zadaniami.

Jeśli dla obszaru roboczego wybrano opcję domyślnej puli (Starter Pool), w poniższej tabeli wymieniono maksymalne limity współbieżności dla zadań.

Dowiedz się więcej: Konfigurowanie pul startowych.

Administratorzy mogą skonfigurować pule Apache Spark, aby korzystać z maksymalnej liczby rdzeni wirtualnych Spark dostępnych w zasobie, w tym współczynnika buforowania 3×, które Fabric oferuje na potrzeby równoczesnego wykonywania. Na przykład administrator obszaru roboczego z pojemnością F64 Fabric ma możliwość skonfigurowania swojej puli Spark (początkowej lub niestandardowej), aby używać maksymalnie 384 wirtualnych rdzeni Spark przez:

Ustawianie maksymalnej liczby węzłów puli początkowej na 48 (z węzłami Medium, 8 rdzeni wirtualnych każdy) lub

Konfigurowanie puli niestandardowej przy użyciu większych węzłów (np. XXLarge = 64 rdzeni wirtualnych każdy) z odpowiednią liczbą węzłów w celu osiągnięcia żądanej pojemności.

Dzięki tej konfiguracji pojedyncze zadanie platformy Spark może zużywać całą pojemność wybuchową, co jest idealne do przetwarzania danych na dużą skalę, które priorytetyzują wydajność.

Nowe: Kontrola zwiększenia poziomu zadań za pośrednictwem portalu administracyjnego Administratorzy pojemności mają teraz kontrolę nad włączaniem lub wyłączaniem skalowania na poziomie zadania za pomocą nowego ustawienia w portalu administracyjnym:

Przejdź do portalu administracyjnego → Ustawienia pojemności → karta Inżynieria danych/nauka

Użyj nowego przełącznika "Wyłącz Job-Level Bursting", aby zapobiec używaniu wszystkich dostępnych pojemności w ramach zadania platformy Spark

Uwaga

Gdy przydział mocy obliczeniowej na poziomie zadania jest wyłączony, silnik Spark wymusza, że żadne pojedyncze zadanie nie może korzystać ze wszystkich dostępnych zasobów (w tym rdzeni dodatkowych). Dzięki temu pojemność pozostaje dostępna dla zadań współbieżnych, zwiększając przepływność i współbieżność wielu użytkowników.

Ta funkcja jest szczególnie przydatna w środowiskach wielodostępnych lub o wysokiej współbieżności, gdzie konieczne jest zrównoważenie obciążeń pomiędzy wieloma zespołami i pipeline'ami. Administratorzy mogą dostroić to ustawienie w zależności od tego, czy pojemność jest zoptymalizowana pod kątem maksymalnej przepustowości zadań (włączone zwiększanie wydajności) lub wyższej współbieżności i równowagi (wyłączono zwiększanie wydajności).

Przykładowe scenariusze z włączoną obsługą szczytowego obciążenia (ustawienie domyślne): duże zadanie notebooka wsadowego może zużywać wszystkie 384 rdzenie wirtualne platformy Spark w klastrze F64, zakładając, że żadne inne zadania nie są uruchomione.

Wyłączone skalowanie: zadanie może być ograniczone do limitu rdzenia podstawowego (np. 128 rdzeni wirtualnych platformy Spark dla F64), co pozwala na równoczesne uruchamianie innych zadań.

Wskazówka

W przypadku zespołów z różnymi typami zadań (ETL, ML, ad hoc) wyłączenie skalowania na poziomie zadań może pomóc zapobiec monopolizacji zasobów i zmniejszyć opóźnienia kolejkowania zadań.