Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule omówiono sposób optymalizacji zarządzania pamięcią klastra Apache Spark w celu uzyskania najlepszej wydajności w usłudze Azure HDInsight.
Przegląd
Platforma Spark działa przez umieszczenie danych w pamięci. Zarządzanie zasobami pamięci jest kluczowym aspektem optymalizacji wykonywania zadań platformy Spark. Istnieje kilka technik, które można zastosować, aby efektywnie używać pamięci klastra.
- Preferuj mniejsze partycje danych i konto dla rozmiaru, typów i dystrybucji danych w strategii partycjonowania.
- Rozważ nowsze, bardziej wydajne
Kryo data serialization, zamiast domyślnej serializacji w języku Java. - Preferuj używać YARN, ponieważ oddziela
spark-submitwedług partii. - Monitorowanie i dostrajanie ustawień konfiguracji platformy Spark.
W dokumentacji struktura pamięci platformy Spark i niektóre parametry pamięci wykonawczej klucza są wyświetlane na następnej ilustracji.
Zagadnienia dotyczące pamięci platformy Spark
Jeśli używasz usługi Apache Hadoop YARN, usługa YARN kontroluje pamięć używaną przez wszystkie kontenery w każdym węźle spark. Na poniższym diagramie przedstawiono kluczowe obiekty i ich relacje.
Aby rozwiązać problem z komunikatami braku pamięci, spróbuj:
- Przejrzyj shuffles zarządzania DAG. Zmniejsz liczbę danych źródłowych po stronie mapy, przed partycją (lub zasobnikami), zmaksymalizuj pojedyncze przetasowania i zmniejsz ilość wysyłanych danych.
- Preferuj
ReduceByKeyze stałym limitem pamięci nadGroupByKey, który zapewnia agregacje, funkcje okienkowe i inne funkcje, ale ma nieograniczony limit pamięci. - Preferuj
TreeReduceelement , który wykonuje więcej pracy na funkcjach wykonawczych lub partycjach, doReduce, co wykonuje całą pracę na sterowniku. - Używaj ramek danych, a nie obiektów RDD niższego poziomu.
- Utwórz typy złożone, które hermetyzują akcje, takie jak "Top N", różne agregacje lub operacje okien.
Aby uzyskać dodatkowe kroki rozwiązywania problemów, zobacz Wyjątki OutOfMemoryError dla platformy Apache Spark w usłudze Azure HDInsight.