Buffl

egzamin

VT
by Vika T.





Cechy platformy Spark


Szybkość: Spark jest wyjątkowo szybki dzięki możliwości przetwarzania danych w pamięci (in-memory). To znacząco redukuje czas potrzebny na odczytywanie i zapisywanie danych na dysku.

Efektywne wykorzystanie węzłów: Spark potrafi efektywnie wykorzystywać zasoby klastrów, równoważąc obciążenie między węzłami, co maksymalizuje wydajność.

Model przetwarzania oparty na grafie acyklicznym: Spark wykorzystuje Directed Acyclic Graph (DAG) do planowania zadań, co pozwala na optymalizację i równoległe wykonywanie operacji, zwiększając efektywność i szybkość.

Optymalizacja kodu – Tungsten: Projekt Tungsten to inicjatywa optymalizacyjna w Spark, która usprawnia zarządzanie pamięcią i przetwarzanie kodu, co prowadzi do lepszej wydajności.

Przechowywanie wyników pośrednich w pamięci: Spark przechowuje wyniki pośrednie w pamięci, co pozwala na szybki dostęp do tych danych podczas kolejnych operacji, eliminując konieczność wielokrotnego odczytywania z dysku.


Przystępny model programistyczny: Spark udostępnia prosty i intuicyjny interfejs programowania, który pozwala programistom na szybkie i efektywne pisanie kodu.

Abstrakcja zbioru danych: Resilient Distributed Dataset (RDD): RDD to fundamentalna struktura danych w Spark, która reprezentuje rozproszony zbiór obiektów. Jest odporny na awarie (resilient) i może być rozproszony na wielu węzłach klastra, co umożliwia skalowalne i szybkie przetwarzanie danych.

DataFrame oraz Dataset: DataFrame to wysoko poziomowa abstrakcja nad RDD, która pozwala na operowanie na danych w sposób podobny do tabel w bazach danych. Dataset łączy zalety RDD i DataFrame, oferując silne typowanie (type-safety) oraz optymalizacje zapytań. DataFrame i Dataset umożliwiają bardziej efektywne operacje dzięki optymalizacji Catalyst.

Transformacje i akcje: W Spark operacje na danych dzielą się na transformacje (transformations) i akcje (actions). Transformacje (np. map, filter) są leniwe (lazy) i tworzą nowy RDD z istniejącego, nie wykonując faktycznych operacji do momentu wywołania akcji. Akcje (np. collect, count) powodują faktyczne przetworzenie danych i zwracają wynik do drivera.


Elastyczność: Spark oferuje wszechstronny i rozbudowany ekosystem, który można dostosować do różnych potrzeb przetwarzania danych.

API dla Scala, Java, Python, SQL i R: Spark udostępnia API w kilku popularnych językach programowania, co pozwala programistom korzystać z narzędzi, które najlepiej znają i które najlepiej pasują do ich projektów.

Spark SQL – przetwarzanie danych strukturalnych: Spark SQL umożliwia przetwarzanie danych strukturalnych za pomocą zapytań SQL, co pozwala na łatwe integrowanie operacji SQL z aplikacjami Spark. To narzędzie wspiera również optymalizację zapytań i integrację z DataFrame oraz Dataset.

Strumieniowanie – moduł dla ciągle napływających danych: Spark Streaming pozwala na przetwarzanie danych w czasie rzeczywistym. Działa na podstawie mikropartycji, co umożliwia elastyczne i skalowalne przetwarzanie strumieni danych.

MLlib – biblioteka uczenia maszynowego: MLlib to wbudowana biblioteka Spark, która dostarcza różnorodne algorytmy uczenia maszynowego, takie jak klasyfikacja, regresja, klasteryzacja czy filtrowanie rekomendacji. Umożliwia łatwe tworzenie i wdrażanie modeli na dużą skalę.

GraphX – przetwarzanie grafów: GraphX to moduł Spark przeznaczony do analizowania i przetwarzania grafów. Umożliwia wykonywanie skomplikowanych operacji na grafach, takich jak obliczanie centralności, ścieżek i innych właściwości strukturalnych grafów.

Ujednolicony silnik: Spark jest zaprojektowany jako ujednolicony silnik przetwarzania danych, co oznacza, że można używać jednej platformy do przetwarzania batch, strumieniowego, interaktywnego oraz analizowania grafów, co upraszcza architekturę systemu i zarządzanie.

Korzystanie z różnych źródeł danych (nie obejmuje funkcjonalności magazynu danych): Spark potrafi integrować dane z różnych źródeł, takich jak HDFS, S3, Cassandra, HBase czy JDBC. Dzięki temu jest bardzo elastyczny w pracy z różnymi systemami przechowywania danych, choć sam nie pełni funkcji magazynu danych.


Author

Vika T.

Information

Last changed