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 opisano wymagane zmiany w celu dostosowania istniejących obciążeń platformy Apache Spark do uruchamiania w usłudze Azure Databricks. Niezależnie od tego, czy przenosisz się do usługi Azure Databricks z klastra lokalnego, niestandardowej infrastruktury opartej na chmurze, czy innej oferty platformy Apache Spark w przedsiębiorstwie, większość obciążeń wymaga tylko kilku zmian, aby przejść do środowiska produkcyjnego. Usługa Azure Databricks rozszerza, upraszcza i poprawia wydajność platformy Apache Spark, wprowadzając niestandardowe optymalizacje, konfigurowanie i wdrażanie infrastruktury oraz utrzymywanie zależności w środowisku Databricks Runtime.
Ważne
Podczas uaktualniania wersji platformy Apache Spark mogą wystąpić istotne zmiany składni. Zobacz Databricks Runtime release notes versions and compatibility and the Spark migration guide (Wersje i zgodność środowiska Databricks Runtime oraz przewodnik po migracji platformy Spark).
Zmień parquet na delta
Usługa Databricks zaleca używanie usługi Delta Lake zamiast Parquet lub ORC podczas zapisywania danych. Usługa Azure Databricks zoptymalizowała wiele funkcji pod kątem wydajności podczas interakcji z tabelami wspieranymi przez usługę Delta Lake, a uaktualnienie danych i formularza kodu Parquet do usługi Delta Lake wymaga tylko kilku kroków. Zobacz Migrowanie usługi Parquet Data Lake do usługi Delta Lake.
Ponieważ usługa Delta Lake zapewnia gwarancje transakcji ACID, możesz uprościć obciążenia, aby usunąć obejścia ukierunkowane na tworzenie pseudo-transakcyjności w operacjach platformy Apache Spark. Oto kilka przykładów:
- Tworzenie struktury katalogów lub strategii partycjonowania, która umożliwia jednoczesne odnajdywanie wszystkich plików z danej operacji w ramach partycji.
- Konfigurowanie lub poleganie na magazynie metadanych w celu dodania transakcyjności sposobu odnajdowania nowych danych.
- Używanie
MSCK repairdo rejestrowania plików zapisanych w tabeli w magazynie metadanych. - Użyj polecenia
alter table add partition, aby ręcznie dodać partycje do tabeli.
Zobacz Kiedy partycjonować tabele w usłudze Azure Databricks.
Uwaga
Obciążenia można uruchamiać bez uaktualniania używanych formatów danych, ale wiele z największych wzrostów wydajności w usłudze Azure Databricks jest powiązanych bezpośrednio z usługą Delta Lake.
Ponowne kompiluj kod platformy Apache Spark przy użyciu bibliotek zgodnych ze środowiskiem Databricks Runtime
Każda wersja środowiska Databricks Runtime jest wstępnie skonfigurowana z wieloma bibliotekami wymaganymi w aplikacjach platformy Apache Spark. Możesz zainstalować dodatkowe biblioteki do zasobów obliczeniowych zgodnie z wymaganiami, ale w zależności od tego, czy jest to możliwe, usługa Databricks zaleca używanie wersji biblioteki spakowanych w środowisku Databricks Runtime, które są testowane pod kątem zgodności. Każda wersja środowiska Databricks Runtime zawiera listę wszystkich zainstalowanych bibliotek. Zobacz Databricks Runtime release notes versions and compatibility (Wersje i zgodność środowiska Databricks Runtime).
Usuwanie poleceń tworzenia platformy SparkSession
Wiele starszych obciążeń platformy Apache Spark jawnie deklaruje nową platformę SparkSession dla każdego zadania. Usługa Azure Databricks automatycznie tworzy obiekt SparkContext dla każdego klastra obliczeniowego i tworzy izolowane środowisko SparkSession dla każdego notesu lub zadania wykonywanego względem klastra. Możesz zachować możliwość kompilowania i testowania kodu lokalnie, a następnie wdrażania w usłudze Azure Databricks, uaktualniając te polecenia do użycia programu SparkSession.builder().getOrCreate().
Usuwanie poleceń skryptu terminalu
Platforma Apache Spark wymaga, aby programy jawnie zadeklarowały, że zostały ukończone przy użyciu poleceń, takich jak sys.exit() lub sc.stop(). Usługa Azure Databricks automatycznie kończy i czyści zadania w miarę ich ukończenia, więc te polecenia nie są konieczne i powinny zostać usunięte.
Usługa Azure Databricks automatycznie kończy i czyści obciążenia przesyłania strumieniowego ze strukturą po zakończeniu wykonywania, dzięki czemu można usunąć awaitTermination() i podobne polecenia z aplikacji do przesyłania strumieniowego ze strukturą.
Ufaj usłudze Azure Databricks w celu skonfigurowania klastra
Usługa Azure Databricks konfiguruje wszystkie ustawienia sterowników i funkcji wykonawczych w klastrze obliczeniowym automatycznie w celu zmaksymalizowania odporności i użycia zasobów. Zapewnienie niestandardowych konfiguracji dla funkcji wykonawczych lub maszyn wirtualnych JVM może spowodować zmniejszenie wydajności. Usługa Databricks zaleca ustawienie tylko konfiguracji platformy Spark, które są niezbędne do kontrolowania obsługi typów lub funkcji, aby logika pozostała spójna.
Uruchamianie obciążeń
Po usunięciu wzorców, poleceń i ustawień, które mogą zakłócać wykonywanie usługi Azure Databricks, możesz uruchamiać obciążenia w środowisku testowym i porównywać wydajność i wyniki ze starszą infrastrukturą. Podczas gdy wiele umiejętności, które zespół mógł rozwinąć w celu rozwiązywania problemów i zwiększania wydajności obciążeń platformy Apache Spark, nadal można korzystać z usługi Azure Databricks, częściej można zobaczyć większe zyski z kroków uaktualniania w celu korzystania z nowych funkcji w usługach Apache Spark, Delta Lake lub niestandardowych produktach usługi Azure Databricks.