Spark zamiast Hadoopa

Za sprawą Hadoopa miniony rok przyniósł rewolucję w przetwarzaniu dużych zbiorów danych. Jednak to nie koniec zmian. Obecnie na scenę wkracza jego następca - Apache Spark – oferujący jeszcze większe możliwości w zakresie analizy danych.

Wśród branży panuje przekonanie, że Spark jest na dobrej drodze do sukcesu. Mamy bowiem coraz więcej przypadków używania Hadoopa, w których jego możliwości są niewystarczające. Tutaj na scenę wkracza Spark. Jest to silnik do analizowania danych przechowywanych w klastrach obliczeniowych. Podobnie jak Hadoop, Spark służy do analizowania zbiorów danych, które są zbyt duże do przetwarzania w tradycyjnych hurtowniach danych czy relacyjnych bazach danych. Kolejną cechą wspólną jest możliwość pracy z nieustrukturyzowanymi danymi, jak pliki rejestrów (logów), które nie zostały przekształcone do postaci tabelarycznej. Jednak możliwości Sparka wykraczają poza to, co potrafi Hadoopa. Przede wszystkim Spark umożliwia analizowanie strumienia danych docierającego do klastra poprzez sieć. Poza tym jest szybszy i łatwiejszy w programowaniu niż Hadoop. To oznacza, że jest odpowiedni dla przyszłej generacji aplikacji, które będą wymagały niskich opóźnień.

Jako taki, Spark może służyć za wydajniejszy zamiennik dla rozwiązania Hadoop MapReduce w zastosowaniach analityki danych. W corocznym Daytona Gray Sort Challenge, teście sprawdzającym szybkość systemów do analizy danych, Spark okazał się znacznie lepszy niż Hadoop MapReduce. Był w stanie posortować 100 TB danych w 23 minuty. Hadoop realizował tę czynność 3 razy dłużej – ponad 72 minuty.

Zobacz również:

Nowe możliwości biznesowe

Początkowo przetwarzanie w czasie rzeczywistym może się wydawać niczym szczególnym, jednakże takie możliwości można wykorzystać do budowania zupełnie nowych produktów i usług. Przykładem jest firma ClearStory Data, która wykorzystuje Sparka i oferuje nowe usługi w zakresie Business Intelligence. Umożliwiają one przetworzenie serii wizualizacji danych w formę prezentacji tak, jakby została przygotowana jako prezentacja w programie PowerPoint. Dane mogą pochodzić z różnych źródeł i jednocześnie można je aktualizować, gdy napływają nowe dane.

Użytkownicy oczekują krótszych czasów reakcji, ponieważ nie chcą czekać na odpowiedź. Przykładowo, Spark może pomóc firmom wyświetlającym reklamy w Internecie w podjęciu decyzji, które reklamy dostarczać internautom, bazując na kilku kliknięciach, zamiast analizować odwiedzane przez nich strony z okresu kilku dni czy nawet tygodni. Szybkość przetwarzania danych przez Sparka jest w tym przypadku ważna, ponieważ ilość zbieranych danych szybko rośnie, za czym nie nadąża przyrost mocy obliczeniowej.

Spark oferuje również sporą paletę sposobów analizy danych. Podstawowym silnikiem Hadoopa jest MapReduce, który nadaje się przede wszystkim do przetwarzania jednego rodzaju problemów, wykorzystując do tego filtrowanie i sortowanie obejmujące klaster obliczeniowy (pojedynczy serwer przetwarza tylko porcję danych), a następnie sumowanie rezultatów.

W przeciwieństwie do tego, Spark został zaprojektowany do rozwiązywania bardziej złożonych zapytań obejmujących, m.in. techniki uczenia maszynowego i modelowania predykcyjnego . Rzeczy, które Hadoop MapReduce potrafi wykonać dobrze, Spark potencjalnie wykona lepiej. Jednakże MapReduce nie odchodzi jeszcze do przeszłości. Mimo że jest wiele projektów wykorzystujących alternatywne rozwiązania do przetwarzania danych, wciąż jest wiele narzędzi dla MapReduce, których Spark się jeszcze nie doczekał (np. Pig czy Cascading). Poza tym są zadania, w których MapReduce wciąż sprawdza się bardzo dobrze.

Kolejnym użytkownikiem Sparka jest popularny serwis z muzyką Spotify, który wykorzystuje tę technologię do generowania list utworów na podstawie specyficznych upodobań użytkowników. Listy są tworzone właśnie z wykorzystaniem algorytmów uczenia maszynowego.

Również użytkownicy Hadoopa dostrzegają potencjał Sparka. Cloudera, dystrybutor Hadoopa, dołączył do swojej dystrybucji Sparka, a wśród klientów tej firmy jest już 60 organizacji, w których Spark służy do realizacji różnych zadań. Inni dystrybutorzy Hadoopa, Hortonworks oraz MapR, również oferują Sparka w swojej dystrybucji.

Najpopularniejszy projekt

Projekt Spark wystartował w 2008 r. na Uniwersytecie Kalifornii, w laboratorium AMPLab (Algorithms, Machine and People). Obecnie jest prowadzony pod kierunkiem Apache Software Foundation i pracuje nad nim więcej uczestników niż nad jakimkolwiek innym projektem Apache. Trzon zespołu stanowią inżynierowie i deweloperzy z takich firm, jak Intel, Yahoo, Groupon, Alibaba czy Mint.

Spark może pracować w połączeniu z Hadoopem, aby analizować dane przechowywane w systemie plików HDFS (Hadoop File System), lub też działać samodzielnie. Technicznie rzecz ujmując, Spark jest samodzielnym projektem, ale od początku był projektowany tak, aby współpracować z HDFS. Może działać bezpośrednio na HDFS, wewnątrz MapReduce lub równolegle do zadań MapReduce na tym samym klastrze.

Programiści budujący aplikacje dla Sparka mogą korzystać z języków Python, Java lub Scala. Częścią zalet Sparka jest dostępność przydatnych interfejsów API (Application Programming Interface), dzięki którym jest on dostępny do wykorzystania przez programistów i inżynierów. Z pewnością można się spodziewać w nadchodzących miesiącach wielu nowych produktów i usług wykorzystujących Sparka. Programiści są często pytani o doświadczenie w zakresie tego rozwiązania i okazuje się, że coraz więcej miało już z nim kontakt.


TOP 200