wprowadzenie do apache spark · 2017-01-20 · wprowadzenie do apache spark jakub toczek. epoka...
TRANSCRIPT
![Page 1: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/1.jpg)
Wprowadzenie do Apache Spark
Jakub Toczek
![Page 2: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/2.jpg)
Epoka informacyjna
![Page 3: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/3.jpg)
MapReduce
![Page 4: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/4.jpg)
MapReduce
![Page 5: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/5.jpg)
Apache Hadoop● narodziny w 2006 roku z Apache Nutch● open source● składa się z systemu plików HDFS i silnika MapReduce● napisany w Javie i w C
![Page 6: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/6.jpg)
HDFS
![Page 7: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/7.jpg)
Apache Spark - czym jest?Ogólny silnik do przetwarzania Big Data. Open source.
![Page 8: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/8.jpg)
Spark - motywacja● Trudność w programowaniu w Hadoopie (MapReduce)● Nadmierne wykorzystywanie HDD przez Hadoopa● Potrzeba frameworku bardziej przyjaznego machine-learning
![Page 9: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/9.jpg)
Trudność w programowaniu
![Page 10: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/10.jpg)
Trudność w programowaniuPython: Scala:
Java:
![Page 11: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/11.jpg)
Spark - motywacja● Trudność w programowaniu w Hadoopie (MapReduce)● Nadmierne wykorzystywanie HDD przez Hadoopa● Potrzeba frameworku bardziej przyjaznego machine-learning
![Page 12: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/12.jpg)
Historia2009 - wychodzi pierwsza wersja Spark’a (część doktoratu Matei Zaharia z UC Berkeley AMPLab)
2010 - upublicznienie kodu źródłowego (licencja BSD)
2013 - Spark staje się częścią Apache Software Foundation i zmienia licencję na Apache 2.0
listopad 2014 - Apache Spark pobija rekord w szybkości sortowania (100 TB danych w 23 min, wcześniejszy rekord: Hadoop i 72 min używając 10x więcej maszyn)
![Page 13: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/13.jpg)
Spark i optymalizacjaSpark oferuje nam:
● lazy computation (optymalizacja przed wykonywaniem)● jak najmniejsza ilość skanowań HDD (jak się da to tylko na początku, reszta obliczeń
w pamięci RAM)● obsługa interaktywnych zapytań● możliwość przetwarzania strumieni● prosty i przyjemny framework● wsparcie dla machine learning
![Page 14: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/14.jpg)
Budowa Sparka
![Page 15: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/15.jpg)
Główne filary SparkaDAG – Direct Acyclic Graph (Skierowany graf acykliczny)
RDD – Resilient Distributed Dataset
![Page 16: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/16.jpg)
DAG - przykład WordCount
![Page 17: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/17.jpg)
DAG - przykład mapowanie + filtrowanie
![Page 18: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/18.jpg)
RDDStruktura danych w Sparku. Niezmienna, rozproszona kolekcja obiektów. Każdy zbiór danych w RDD jest podzielony na logiczne partycje, które mogą być przetwarzane przez różne wierzchołki klastra. Może przechowywać obiekty Pythonowe, Javowe i w Scali. Read-only - po każdej operacji na RDD tworzony jest nowy RDD.
![Page 19: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/19.jpg)
RDDIstnieją dwa sposoby stworzenia RDD:
● zrównoleglenie kolekcji danych w programie sterownika
● odwołanie się do zewnętrznego systemu przechowywania danych jak HDFS, HBase
albo dowolne źródło danych oferujące Hadoop Input Format
Spark używa RDD do szybszego przetwarzania operacji MapReduce.
![Page 20: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/20.jpg)
RDDTrzy podstawowe tryby przetrzymywania RDD:
● tylko w pamięci ● tylko na dysku● w pamięci i na dysku
![Page 21: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/21.jpg)
RDDDwa rodzaje obsługiwanych operacji:
● transformacje● akcje
Przykłady transformacji: map, filter, flatMap, groupByKey, reduceByKey, aggregateByKey, pipe i coalesce.
Przykłady akcji: reduce, collect, count, first, take, countByKey i foreach.
Zapraszam na: http://spark.apache.org/docs/latest/programming-guide.html
![Page 22: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/22.jpg)
Dlaczego RDD?Może być przechowywany w pamięci podręcznej. Aplikacje iteracyjne jak i interaktywne
wymagają szybkiej wymiany danych między równoległymi jobami. W MapReduce
wymiana danych jest bardzo wolna przez replikacje, serializacje i zapis danych na dysk.
Bez względu na system plików, zajmuje to ok 90% całkowitego czasu przetwarzania.
![Page 23: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/23.jpg)
Operacje iteracyjne na MapReduce
![Page 24: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/24.jpg)
Operacje interaktywne na MapReduce
![Page 25: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/25.jpg)
Operacje iteracyjne na Spark RDD
![Page 26: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/26.jpg)
Operacje interaktywne na Spark RDD
![Page 27: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/27.jpg)
Jak działa Apache Spark?
![Page 28: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/28.jpg)
Przykład WordCount
![Page 29: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/29.jpg)
Przykład WordCount
![Page 30: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/30.jpg)
Przykład WordCount
![Page 31: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/31.jpg)
Spark StreamingRozszerzenie Sparka generujące mikro-zadania wsadowe (co jakiś czas np 2s), pozwalające na analizę strumieni danych. Używa tych samych mechanizmów do zrównoleglania co Spark Core. Zapewnia analizę elementu strumienia danych dokładnie raz. Większość innych frameworków traktuje strumienie pojedynczo.
![Page 32: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/32.jpg)
Spark Streaming
![Page 33: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/33.jpg)
Spark SQLZadania są generowane na podstawie zapytań SQL. Podobny do Hive, może korzystać z jego komponentów i zapytań.
![Page 34: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/34.jpg)
InstalacjaNie wymaga wcześniej zainstalowanego Hadoopa.
Trzeba mieć zainstalowane JDK.
Działa na komputerach z systemem opartych na UNIXie (Linux, Mac OS) oraz Windows (tutaj trzeba zbudować projekt Spark’a samemu za pomocą Maven’a).
Projekty buduje się za pomocą Maven’a.
(Z własnego doświadczenia… lepiej na Win10 ściągnąć sobie maszynę wirtualną z linuxem)
![Page 35: Wprowadzenie do Apache Spark · 2017-01-20 · Wprowadzenie do Apache Spark Jakub Toczek. Epoka informacyjna. MapReduce. MapReduce. Apache Hadoop narodziny w 2006 roku z Apache Nutch](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec9783c511ff50fe43cddf9/html5/thumbnails/35.jpg)
Źródłahttps://www.tutorialspoint.com/apache_spark/
https://en.wikipedia.org/wiki/Apache_Spark
http://spark.apache.org/docs/latest/programming-guide.html
http://0x0fff.com/spark-architecture-talk/
https://www.sigmoid.com/apache-spark-internals/
https://www.infoq.com/articles/apache-spark-introduction