An Architecture for Fast and General Data Processing on Large Clusters
W ciągu ostatnich kilku lat nastąpiła poważna zmiana w systemach obliczeniowych, ponieważ rosnące ilości danych i malejące prędkości procesorów wymagają, aby coraz więcej aplikacji skalowało się do klastrów. Obecnie niezliczone źródła danych, od Internetu przez operacje biznesowe po instrumenty naukowe, generują duże i cenne strumienie danych. Jednak możliwości przetwarzania pojedynczych maszyn nie nadążają za rozmiarem danych. W rezultacie organizacje coraz częściej muszą skalować swoje obliczenia na klastry.
Jednocześnie wzrosła szybkość i stopień zaawansowania przetwarzania danych. Oprócz prostych zapytań, powszechne stają się złożone algorytmy, takie jak uczenie maszynowe i analiza grafów. Oprócz przetwarzania wsadowego, wymagana jest również strumieniowa analiza danych w czasie rzeczywistym, aby umożliwić organizacjom podejmowanie działań w odpowiednim czasie. Przyszłe platformy obliczeniowe będą musiały nie tylko skalować tradycyjne obciążenia, ale także obsługiwać te nowe aplikacje.
Niniejsza książka, będąca poprawioną wersją pracy doktorskiej nagrodzonej ACM Dissertation Award 2014, proponuje architekturę dla klastrowych systemów obliczeniowych, która może poradzić sobie z nowymi obciążeniami związanymi z przetwarzaniem danych na dużą skalę. Podczas gdy wczesne systemy obliczeń klastrowych, takie jak MapReduce, obsługiwały przetwarzanie wsadowe, nasza architektura umożliwia również przesyłanie strumieniowe i interaktywne zapytania, zachowując skalowalność i odporność na błędy MapReduce. Podczas gdy większość wdrożonych systemów obsługuje tylko proste obliczenia jednoprzebiegowe (np. zapytania SQL), nasza architektura obejmuje również algorytmy wieloprzebiegowe wymagane do złożonych analiz, takich jak uczenie maszynowe. Wreszcie, w przeciwieństwie do wyspecjalizowanych systemów zaproponowanych dla niektórych z tych obciążeń, nasza architektura pozwala na łączenie tych obliczeń, umożliwiając tworzenie nowych, bogatych aplikacji, które mieszają, na przykład, przetwarzanie strumieniowe i wsadowe.
Osiągamy te wyniki dzięki prostemu rozszerzeniu MapReduce, które dodaje prymitywy do udostępniania danych, zwane Resilient Distributed Datasets (RDD). Pokazujemy, że jest to wystarczające do uchwycenia szerokiego zakresu obciążeń. Implementujemy RDD w systemie open source Spark, który oceniamy przy użyciu syntetycznych i rzeczywistych obciążeń. Spark dorównuje lub przewyższa wydajnością wyspecjalizowane systemy w wielu domenach, oferując jednocześnie silniejsze właściwości odporności na błędy i umożliwiając łączenie tych obciążeń. Na koniec badamy ogólność RDD zarówno z teoretycznej perspektywy modelowania, jak i z perspektywy systemowej.
Niniejsza wersja rozprawy zawiera poprawki w całym tekście i dodaje nową sekcję dotyczącą ewolucji Apache Spark w przemyśle od 2014 roku. Ponadto dodano edycję, formatowanie i linki do odnośników.
© Book1 Group - wszelkie prawa zastrzeżone.
Zawartość tej strony nie może być kopiowana ani wykorzystywana w całości lub w części bez pisemnej zgody właściciela.
Ostatnia aktualizacja: 2024.11.13 21:45 (GMT)