Wysokie we/wy na etapie platformy Spark
Następnie ponownie spójrz na statystyki operacji we/wy dla najdłuższego etapu.
Co to jest wysokie we/wy?
Ile danych musi znajdować się w I/O column, aby zostać uznanymi za duże? Aby to ustalić, najpierw zacznij od najwyższej liczby w dowolnej z podanych columns. Następnie należy wziąć pod uwagę łączną liczbę rdzeni procesora CPU we wszystkich naszych pracownikach. Ogólnie każdy rdzeń może odczytywać i zapisywać około 3 MB na sekundę.
Podziel największe I/O column przez liczbę rdzeni roboczych klastra, a następnie podziel wynik przez czas trwania w sekundach. Jeśli wynik wynosi około 3 MB, prawdopodobnie masz problemy z I/O. To byłoby wysokie we/wy.
Wysokie dane wejściowe
Jeśli widzisz dużo danych wejściowych w swoim etapie, oznacza to, że spędzasz dużo czasu na odczytywaniu danych. Najpierw zidentyfikuj, jakie dane odczytuje ten etap. Zobacz Identyfikowanie kosztownego odczytu wDAG platformy Spark.
Po zidentyfikowaniu określonych danych poniżej przedstawiono kilka metod przyspieszania operacji odczytu:
- Użyj Delta.
- Spróbuj Photon . Może znacznie poprawić szybkość odczytu, szczególnie w przypadku szerokiego tables.
- Utwórz zapytanie bardziej selektywne, aby nie trzeba było odczytywać jak najwięcej danych.
- ponownie przemyśl układ danych, żeby omijanie danych było bardziej efektywne.
- Jeśli odczytujesz te same dane wielokrotnie, użyj pamięci podręcznej Delta.
- Rozważ, jeśli wykonujesz join, spróbować getDFP.
Wysokie dane wyjściowe
Jeśli widzisz dużo danych wyjściowych ze swojego etapu, oznacza to, że poświęcasz dużo czasu na zapisywanie danych. Poniżej przedstawiono kilka metod rozwiązywania tego problemu:
- Czy tworzysz ponownie dużo danych? Zobacz Jak określić, czy platforma Spark ponownie zapisywa dane do sprawdzenia. W przypadku ponownego zapisywania wielu danych:
- Sprawdź, czy masz scalanie , które należy zoptymalizować.
- Użyj wektorów usuwania, aby oznaczyć istniejące wiersze jako usunięte lub zmienione bez ponownego zapisywania pliku Parquet.
- Włącz Photon, jeśli jeszcze nie jest włączony. Photon może znacznie pomóc w prędkości zapisu.
Intensywne tasowanie
Jeśli nie znasz mieszania, nadszedł czas, aby nauczyć się.
Brak intensywnego przetwarzania wejścia/wyjścia
Jeśli nie widzisz wysokiego we/wy w żadnej z columns, musisz zagłębić się głębiej. Zobacz powolny etap Spark z niewielkim I/O.