Analiza porównawcza rozwiązań Apache Hadoop i Apache Spark dedykowanych równoległemu przetwarzaniu danych masowych

 

 

 

 

Autor: Szymon Łyszkowski

Promotor: dr inż. Agnieszka Wosiak

 

1. Wstęp

Czym jest Big Data?

1015B

Petabajt to biliard bajtów

1.000.000.000.000.00B

Dlaczego?

SPARK HADOOP
Intuicyjne API Skomplikowane API
Operacje w RAM Wysoki koszt I/O
Podejście reaktywne Dane historyczne

1.1 Przetwarzanie równoległe

  • Parallel computing - "form of computing in which computations are broken into many pieces that are executed simultaneously." [11]
  • Concurrent computing - "form of computing in which computations are designed as collections of interacting processes." [11]

1.2 Zakres pracy

 

  • Inżynieria oprogramowania (analiza, projektowanie, implementacja, testowanie, wdrożenie)

  • Operacje wykorzystujące paradygmat map-reduce

  • Współbieżność

  • Klastry komputerowe

1.3 Cele pracy

  • Analiza dostępnych narzędzi do przetwarzania równoległego.

  • Analiza operacji korzystających z map-reduce ze względu na koszty obliczeniowe oraz szybkość

  • Stworzenie prototypu systemu XYZ

  • Badanie wyników dostarczonych przez system XYZ

  • Ocena możliwości komercyjnego rozwoju systemu XYZ

  • Ocena opłacalności migracji z Apache Hadoop do Apache Spark

1.4 Przegląd literatury

      1. Prace Dyplomowe

        Efektywne metody selekcji cech i rozwiązywania problemu wieloklasowego w nadzorowanej klasyfikacji danych [1]

        Scaling feature selection algorithms using MapReduce on Apache Hadoop [2]

      2. Kursy i szkolenia

        Machine Learning MIT [3]

      3. Źródła książkowe anglojęzyczne

        Functional Programming in Scala [4]

        Extreme Programming Explained [5]

        Clean Code[6]

        The Pragmatic Programmer: From Journeyman to Master [7]

        Learning Spark: Lightning-Fast Big Data Analysis [8]

1.5  Układ pracy

    1.Wstęp

      1.1 Problematyka operacji w kontekscie platform równoległych. Batch, pipelining, operacje leniwe.

      1.2 Zakres pracy
      1.3 Cele pracy

      1.4 Przegląd literatury

      1.5 Przegląd rozdziałów

1.5  Układ pracy

    2. Przetwarzanie danych masowych na platformach równoległych.

      2.1 Podstawowe definicje

      2.2 Dostępne oprogramownie do przetwarzania równoległego
      2.3 Paradygmat Map Reduce

      2.4 Wykonywanie obliczeń przy użyciu klastrów komputerowych

      2.5 Operacje - przypadki użycia w architekturze równoległej

1.5  Układ pracy

    3. Stos technologiczny zastosowany w projekcie XYZ

      3.1 Technologie i narzędzia

       

    4. Projekt XYZ

      4.1 Analiza wymagań

      4.2 Ograniczenia

      4.3 Implementacja

      4.4 Testowanie

     

1.5  Układ pracy

    5. Podsumowanie

      5.1 Dyskusja wyników operacji dostarczonych przez system

      5.2 Dyskusja wyników monitoringu dostarczonych przez system

      5.3 Ocena projektu XYZ

        5.3.1 Spodziewane rezultaty

      5.4 Możliwości rozowoju komercyjnego

    6. Bibliografia

     

2. Przetwarzanie danych masowych na platformach równoległych.

2. 1 Podstawowe definicje

  • Big data - "data sets whose size is beyond

    the ability of typical database software tools to capture, store, manage, and analyze."[9]

  • Klaster komputerowy - "A cluster is a type of parallel or distributed computer system, which consists of a collection of inter-connected stand-alone computers working together as a single integrated computing resource." [10]
  • 4V -

    Volume – duża ilość danych
    Velocity – duża zmienność danych
    Variety – duża różnorodność danych
    Veracity – istotna wartość danych

     

2. 2 Dostępne oprogramowanie do przetwarzania równoległego

2. 3 Paradygmat Map Reduce

Rys. 1 Schemat Map Reduce[14]

2. 4 Wykonywanie obliczeń przy użyciu klastrów komputerowych

 

  • Najnowsze rozwiązania w dziedzinie klastrów
  • Zarządzanie oraz utrzymanie
  • Zastosowania

 

2. 5 Operacje - przypadki użycia w architekturze równoległej

  • Monitorowanie tansakcji bankowych
  • Badanie opinii publicznej
  • Migracja danych

3. Stos technologiczny

  • Scala
  • Apache Spark
  • Apache Hadoop
  • CloudWatch
  • Git
  • Play Framework
  • Trello

4. Projekt XYZ

4. 1 Analiza wymagań

  1. Wymagania funkcjonalne
  2. Wymaganie niefunkcjonalne

4. 2 Ograniczenia

  1. Ograniczenia domenowe

4. 3 Implementacja

  1. Dokumentacja API
  2. Dokumentacja UML

4. 4 Testowanie

  1. Testy szybkości operacji
  2. Testy wydajności sprzętowej

5. Podsumowanie

5. 1 Dyskusja wyników operacji dostarczonych przez system

5.2 Dyskusja wyników monitoringu dostarczonych przez system

5. 3 Ocena projektu XYZ

  • Koszty sprzętowe
  • Szybkość wykonanych operacji
  • Łatwość w wyborze między Spark a Hadoop
  • Możliwości rozbudowy produktu pod kątem klienta indywidualnego

5.3.1 Spodziewane rezultaty

  • Spark optymalniejszym rozwiązaniem w przypadku danych strumieniowych
  • Spark rozwiązaniem kosztowniejszym w przypadku rozważań wymaganych zasobów

5. 4 Propozycje dalszego rozwoju

  • Automatyczne wnioskowanie w poszukiwaniu optymalnego rozwiązania sprzętowego
  • Automatyczna kalkulacja kosztów potrzebnych zasobów do wykonania obliczeń

6. Bibliografia

 

[1] mgr. Wiesław Chmielnicki. Instytut Podstawowych Problemów Techniki Polskiej Akademii Nauk. Efektywne metody selekcji cech i rozwiązywania problemu wieloklasowego w nadzorowanej klasyfikacji danych.Kraków 2012.link [dostęp 09.04.2016]

[2] Claudio Reggiani. POLITECNICO DI MILANO Corso di Laurea Magistrale in Ingegneria Informatica Dipartimento di Elettronica e Informazione. Scaling feature selection algorithms using MapReduce on Apache Hadoop. Academic Year 2012-2013.link [dostęp 09.04.2016]

[3] Massachusetts Institute of Technology online course.Machine Learning. Rohm Singh.Prof. Tommi Jaakkola.Ali Mohammad.MIT Course Number:6.867.link [dostęp 09.04.2016]

[4]Functional Programming in Scala.Paul Chiusano and Rúnar Bjarnason.September 2014.ISBN 9781617290657.

[5]Kent Beck. Cynthia Andres.Extreme Programming Explained: Embrace Change, 2nd Edition (The XP Series).

[6]Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition. ISBN-13: 978-0132350884. 2008

[7]Andrew Hunt. David Thomas.The Pragmatic Programmer: From Journeyman to Master 1st Edition.1999.ISBN-13: 078-5342616224

[8]Holden Karau. Andy Konwinski. Learning Spark: Lightning-Fast Big Data Analysis 1st Edition.ISBN-13: 978-1449358624.2015

[9] H. Hu Y. Wen ; T. S. Chua ; X. Li Sch. of Comput., Nat. Univ. of Singapore, Singapore, Singapore Toward Scalable Systems for Big Data Analytics: A Technology Tutorial link [dostęp 09.04.2016]

[10] Chee Shin Yeo, Rajkumar Buyya, Hossein Pourreza, Rasit Eskicioglu, Peter Graham, Frank Sommers. Cluster Computing: High-Performance, High-Availability, and High-Throughput Processing on a Network of Computers. link [dostęp 09.04.2016]

[11] Charles E. Leiserson. MIT. Concurrency without Parallelism. Prezentacja. [dostęp 4.06.2016]

[12] Oficjalna witryna Apache Spark  [dostęp 09.04.2016]

[13] Oficjalna witryna Apache Hadoop  [dostęp 09.04.2016]

[14]Rysunek schematu map reduce  [dostęp 09.04.2016]

 

7. Harmonogram

Made with Slides.com