Big Data
Organizacyjnie Prowadzący: dr Mariusz Rafało mrafalo@sgh.waw.pl http://mariuszrafalo.pl (hasło: BIG)
Data Camp
Architektura
Data Lake Repozytorium służące składowaniu i przetwarzaniu danych o bardzo dużej skali i zróżnicowaniu Możliwość podłączania zróżnicowanych źródeł danych, zarówno posiadających strukturę jak i pozbawionych struktury; danych wsadowych oraz strumieni Dane nie są składowane w sposób uporządkowany jak w przypadku hurtowni danych czy data martów. Jest to często federacja technologii, baz danych i strumieni danych Architektura powstała jako odpowiedź na wady klasycznych hurtowni danych: HD odpowiadają tylko na pytania, które były znane wcześniej Hurtownie danych i data marty posiadają dane o określonej szczegółowości. Nie można jej zwiększyć HD opierają się na zdefiniowanych źródłach danych 5
Architektura lambda location Real-time layer Serving layer mobile apps databases Real-time data repository Data enrichment sensors Batch layer cloud science Enterprise data repository 6
Architektura kappa location mobile apps Real-time layer Real-time engine Serving layer databases sensors cloud Historical data storage science Dane historyczne Dane słownikowe 7
Przetwarzanie danych
Map Reduce Algorytm służący przetwarzaniu równoległemu dużych zbiorów danych w rozproszonym środowisku. Podejście opracowane przez firmę Google. Algorytm składa się z dwóch głównych kroków: map pobranie danych z wejścia i ich podział na podzbiory. Dekompozycja problemu na podproblemy. reduce zgromadzenie odpowiedzi, ich połączenie i przekazanie wyniku 9
Map reduce map reduce input map Dokument 1 Dokument 2 Dokument 3 Dokument 4 map reduce reduce output map 10
Map reduce 11
Pig Platforma służąca do analizy i przetwarzania dużych zbiorów danych Udostępnia język programowania, pozwalających na zrównoleglanie i rozpraszanie przetwarzania Język Pig stanowi warstwę działającą na HDFS. Kod źródłowy Pig jest przetwarzany przez platformę na zadania MapReduce Optymalizacja kodu jest wykonywana automatycznie przez platformę Możliwe jest dołączanie/programowanie dodatkowych funkcji, rozszerzających standardowe 12
Yarn Usługa zarządzająca zasobami klastra (resource manager) Każde zadanie realizowane przez klaster (zapytanie o dane, przetwarzanie danych, ładowanie danych, itp.) wymaga określonych zasobów. Zasoby te przydziela Yarn Yarn zarządza mocą procesorów (CPU), pamięcią RAM, przestrzenią dyskową oraz zasobami sieciowymi Obsługuje pojedyncza zadania a także całe aplikacje, które pracują na klastrze 13
Yarn kolejki (queues) 10% 40% 30% 10% 10% default ETL reporting apps 14
Tez Źródło: hortonworks.com/apache/tez/ 15
DAG (Directed Acyclic Graph) Źródło: sigmoid.com 16
Tez vs MapReduce Źródło: tez.apache.org 17
Spark Platforma (engine) do przetwarzania danych w dużej skali Obsługuje języki programowania: Java, Scala, Python, R, SQL Może pracować w trybie batch lub stream Może realizować zadania na jednej maszynie oraz na klastrze Lazy evaluation Immutable structures Źródło: spark.apache.org 18
Spark Źródło: databricks.com 19
Spark: DAG Źródło: 1.bp.blogspot.com 20
Spark: UI Źródło: databricks.com 21
Dziękuję za uwagę
Automatyzacja przetwarzania: Apache NiFi Źródło: nifi.apache.org 23
Automatyzacja przetwarzania: ETL Oozie Airflow Falcon SLJM CRON(sic!) Źródło: airflow.apache.org 24