Seminarium: Systemy Rozproszone
16 stycznia 2014, godzina 12:15,
sala
MapReduce i podobne systemy znacząco ułatwiły pisanie aplikacji przetwarzających dużą ilością rozproszonych danych. Jednak wiele rzeczywistych zadań obliczeniowych wymaga sekwencji wielu MapReduce'ów, a programowanie i zarządzanie nimi często okazuje się trudne. Podczas swojej prezentacji przedstawię FlumeJava, bibliotekę Javy, która pozwala łatwo rozwijać, testować i uruchamiać wydajne łańcuchy operacji przetwarzających duże ilości rozproszonych danych. Fundament FlumeJava stanowi kilka klas, które reprezentują niezmienne, abstrakcjne kolekcje, które posiadają niewielką liczbę operacji do ich równoległego przetwarzania. Abstrakcyjne kolekcje i operacje na nich składają się na bardzo prosty, wysoko-poziomowy i jednolity model pozwalający na przetwarzanie danych z różnych źródeł i na różne sposoby. W celu optymalizacji, FlumeJava opóźnia wykonanie operacji, tworząc wpierw odpowiedni plan wykonania w postaci grafu. Aby otrzymać pożądane wyniki, FlumeJava optymalizuje plan wykonania, a następnie wykonuje go przy użyciu dostępnych metod przetwarzana dużych danych (np. MapReduce). Połączenie wysoko-poziomowego opisu danych i równoległych operacji na nich, opóźnione wykonanie i optymalizacja oraz wydajne metody bazowe daje bardzo prosty w użyciu system dorównujący wydajnością metodom przetwarzania danych zaprojektowanych całkowicie przez człowieka. FlumeJava jest na szeroką skalę używana przez setki programistów Google.
Bibliografia:
Zapraszam!
Piotr Leszczyński