Konfiguracje puli platformy Apache Spark w usłudze Azure Synapse Analytics
Pula Platformy Spark to zestaw metadanych, który definiuje wymagania dotyczące zasobów obliczeniowych i skojarzone cechy zachowania, gdy wystąpienie wystąpienia platformy Spark jest tworzone. Te cechy obejmują, ale nie są ograniczone do nazw, liczby węzłów, rozmiaru węzła, zachowania skalowania i czasu wygaśnięcia. Pula Platformy Spark sama w sobie nie zużywa żadnych zasobów. Nie są naliczane żadne koszty związane z tworzeniem pul platformy Spark. Opłaty są ponoszone tylko wtedy, gdy zadanie Spark jest wykonywane na docelowej puli zadań Spark i instancja Spark jest inicjowana na żądanie.
Aby dowiedzieć się, jak utworzyć pulę platformy Spark i zobaczyć wszystkie ich właściwości, zobacz wprowadzenie do pul platformy Spark w usłudze Synapse Analytics
Izolowane obliczenia
Opcja Izolowane obliczenia zapewnia większe bezpieczeństwo zasobów obliczeniowych platformy Spark z niezaufanych usług, poświęcając zasób obliczeniowy fizyczny jednemu klientowi. Opcja izolowanych zasobów obliczeniowych jest najbardziej odpowiednia dla obciążeń wymagających wysokiego stopnia izolacji od obciążeń innych klientów z powodów, które obejmują spełnienie wymagań prawnych i zgodności. Opcja Izoluj obliczenia jest dostępna tylko z rozmiarem węzła XXXLarge (80 vCPU/504 GB) i dostępnym tylko w następujących regionach. Opcja izolowanego środowiska obliczeniowego może być włączona lub wyłączona po utworzeniu puli, chociaż może być konieczne ponowne uruchomienie wystąpienia. Jeśli spodziewasz się włączyć tę funkcję w przyszłości, upewnij się, że obszar roboczy usługi Synapse został utworzony w izolowanym regionie obsługiwanym przez zasoby obliczeniowe.
- East US
- Zachodnie stany USA 2
- South Central US
- US Gov Arizona
- US Gov Wirginia
Węzły
Wystąpienie puli platformy Apache Spark składa się z jednego węzła głównego i co najmniej dwóch węzłów procesu roboczego z co najmniej trzema węzłami w wystąpieniu platformy Spark. Węzeł główny uruchamia dodatkowe usługi zarządzania, takie jak Livy, Yarn Resource Manager, Zookeeper i sterownik Spark. Wszystkie węzły uruchamiają usługi, takie jak Agent węzła i Menedżer węzłów Yarn. Wszystkie węzły robocze uruchamiają usługę funkcji wykonawczej platformy 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 węzła obliczeniowego XXLarge z 64 rdzeniami wirtualnymi i 432 GB pamięci na węzeł. Rozmiary węzłów można zmienić po utworzeniu puli, chociaż może być konieczne ponowne uruchomienie wystąpienia.
Rozmiar | Rdzenie wirtualne | Pamięć |
---|---|---|
Mały | 100 | 32 GB |
Śred. | 8 | 64 GB |
Duży | 16 | 128 GB |
XLarge | 32 | 256 GB |
XXLarge | 64 | 432 GB |
XXX — duże (izolowane obliczenia) | 80 | 504 GB |
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 automatycznego skalowania należy ustawić minimalną i maksymalną liczbę węzłów do skalowania. Gdy funkcja autoskalowania jest wyłączona, liczba ustawionych węzłów pozostanie stała. To ustawienie można zmienić po utworzeniu puli, chociaż może być konieczne ponowne uruchomienie wystąpienia.
Magazyn elastycznej puli
Pule platformy Apache Spark obsługują teraz magazyn elastycznej puli. Magazyn elastycznej puli umożliwia aparatowi Spark monitorowanie tymczasowego magazynu węzła roboczego i dołączanie dodatkowych dysków w razie potrzeby. Pule platformy Apache Spark korzystają z tymczasowego magazynu dysków podczas tworzenia wystąpienia puli. Zadania platformy Spark zapisują dane wyjściowe mapy shuffle, mieszania danych i rozlania danych na lokalne dyski maszyn wirtualnych. Przykłady operacji, które mogą korzystać z dysku lokalnego, to sortowanie, pamięć podręczna i utrwalanie. Gdy zabraknie tymczasowego miejsca na dysku maszyny wirtualnej, zadania platformy Spark mogą zakończyć się niepowodzeniem z powodu błędu "Brak miejsca na dysku" (java.io.IOException: brak miejsca pozostawionego na urządzeniu). W przypadku błędów "Brak miejsca na dysku" znaczna część obciążenia, aby zapobiec przejściu zadań w tryb failover do klienta w celu ponownego skonfigurowania zadań platformy Spark (na przykład dostosowania liczby partycji) lub klastrów (na przykład dodania kolejnych węzłów do klastra). Te błędy mogą nie być spójne, a użytkownik może w dużym stopniu eksperymentować, uruchamiając zadania produkcyjne. Ten proces może być kosztowny dla użytkownika w wielu wymiarach:
- Zmarnowany czas. Klienci są zobowiązani do eksperymentowania w dużym stopniu z konfiguracjami zadań za pośrednictwem wersji próbnej i błędu i oczekuje się, że zrozumieć wewnętrzne metryki platformy Spark w celu podjęcia właściwej decyzji.
- Zmarnowane zasoby. Ponieważ zadania produkcyjne mogą przetwarzać różne ilości danych, zadania platformy Spark mogą zakończyć się niepowodzeniem bez określania, jeśli zasoby nie są nadmiernie aprowizowane. Rozważmy na przykład problem niesymetryczności danych, co może spowodować, że kilka węzłów wymaga więcej miejsca na dysku niż inne. Obecnie w usłudze Synapse każdy węzeł w klastrze uzyskuje ten sam rozmiar miejsca na dysku i zwiększenie miejsca na dysku we wszystkich węzłach nie jest idealnym rozwiązaniem i prowadzi do ogromnych strat.
- Spowolnienie wykonywania zadań. W hipotetycznym scenariuszu, w którym rozwiązujemy problem przez węzły skalowania automatycznego (przy założeniu, że koszty nie są problemem dla klienta końcowego), dodanie węzła obliczeniowego jest nadal kosztowne (trwa kilka minut) w przeciwieństwie do dodawania magazynu (zajmuje kilka sekund).
Nie jest wymagana żadna akcja, a w rezultacie powinna zostać wyświetlona mniejsza liczba niepowodzeń zadań.
Uwaga
Magazyn elastycznej puli usługi Azure Synapse jest obecnie dostępny w publicznej wersji zapoznawczej. W publicznej wersji zapoznawczej nie są naliczane opłaty za korzystanie z magazynu elastycznej puli.
Automatyczne wstrzymanie
Funkcja automatycznego wstrzymywania zwalnia zasoby po określonym okresie bezczynności, co zmniejsza całkowity koszt puli platformy Apache Spark. Liczbę minut bezczynności można ustawić po włączeniu tej funkcji. Funkcja automatycznego wstrzymywania jest niezależna od funkcji automatycznego skalowania. Zasoby można wstrzymać niezależnie od tego, czy skalowanie automatyczne jest włączone, czy wyłączone. To ustawienie można zmienić po utworzeniu puli, chociaż należy ponownie uruchomić aktywne sesje.