Κωδικός Μαθήματος

ΜΔΑ-210

Εξάμηνο Μαθήματος

1ου Εξαμήνου

Πιστωτικές Μονάδες

7,5

Ηλεκτρονικό Υλικό

https://evdoxos.ds.unipi.gr/courses/DSERV110

Κατηγορία Μαθήματος

Υποχρεωτικό

Διδάσκοντες

Δημοσθένης Κυριαζής

Α. Βλάχου

Νεφοϋπολογιστική με Hadoop

Στόχος

Στόχος του μαθήματος είναι η παρουσίαση θεμάτων σχεδιασμού και υλοποίησης στο χώρο των υπολογιστικών νεφών και της αξιοποίησης τους για την αποθήκευση και επεξεργασία δεδομένων. Το μάθημα προσφέρει το θεωρητικό υπόβαθρο των συγκεκριμένων περιβαλλόντων ενώ επίσης επιδιώκεται η εξοικείωση των συμμετεχόντων με τεχνολογίες λειτουργίας, προγραμματισμού και εκτέλεσης εργασιών ανάλυσης δεδομένων σε υπολογιστικά νέφη μέσω των αντίστοιχων εργαστηριακών θεματικών περιοχών. Εξετάζονται σε βάθος έννοιες, τεχνικές και μεθοδολογίες σε όλα τα επίπεδα της υποδομής, δίνοντας έμφαση σε θέματα όπως οι σύγχρονες αρχιτεκτονικές νεφών (υπολογιστικών και αποθηκευτικών νεφών), τα δομικά τους στοιχεία (τύποι πόρων, κατηγορίες υπηρεσιών, συμβόλαια επιπέδου υπηρεσιών και επιπέδου γεγονότων, σύνθεση και πολυεπίπεδη ενορχήστρωση υπηρεσιών, κ.α.) καθώς και οι τεχνικές βελτιστοποίησης αποθήκευσης και επεξεργασίας δεδομένων. Σε αυτό το πλαίσιο, αναλύονται σε βάθος οι περιπτώσεις διαχείρισης και επεξεργασίας δεδομένων με χρήση του Hadoop / Map Reduce. Μεσολογισμικά ανοιχτού κώδικα για την ανάπτυξη των υποδομών υπολογιστικών νεφών (όπως το OpenStack) θα αναλυθούν και χρησιμοποιηθούν σε σχετικές εργαστηριακές διαλέξεις, όπως και οι τεχνολογίες δημιουργίας συστοιχιών Hadoop. Επιπλέον, το μάθημα θα επικεντρωθεί σε επερωτήσεις με χρήση γλωσσών υψηλού επιπέδου για τον καθορισμό εργασιών ανάλυσης δεδομένων.

 

Περιεχόμενα

Υπολογιστικά νέφη (Cloud computing)

Ορισμός. Στόχοι. Προκλήσεις. Τομείς εφαρμογής. Συμβόλαια παροχής υπηρεσιών. Φάσεις εκτέλεσης εργασιών και υπηρεσιών. Διακριτά επίπεδα βάσει του μοντέλου Software-Platform-Infrastructure (SPI). Αρχιτεκτονική σχεδίαση. Αρχιτεκτονική ανοιχτών υπηρεσιών. Υπηρεσιοστρεφής αρχιτεκτονική. Αρχιτεκτονική επόμενης γενιάς. Στοιχεία fog και edge υποδομών.

Επίπεδο Platform as a Service και επίπεδο Software as a Service (Platform as a Service and Software as a Service Layers)

Διαπραγμάτευση συμβολαίων παροχής υπηρεσιών. Κατάλογοι υπηρεσιών (UDDI, UBR, ebXML) και μηχανισμοί εύρεσης. Επιλογή κόμβων. Εκτέλεση. Εποπτεία. Αποτίμηση και κοστολόγηση. Διαχείριση ροών εργασίας. Wrappers για τον έλεγχο, την εποπτεία και τη διαμόρφωση των εφαρμογών. Mεθοδολογία μοντελοποίησης και ανάπτυξης εφαρμογών.

Εργαστήριο 1

Προγραμματισμός, παραμετροποίηση και εκτέλεση εφαρμογών στο υπολογιστικό νέφος της Google με χρήση της πλατφόρμας Google AppEngine.

Επίπεδο Infrastructure as a Service (Infrastructure as a Service Layer)

Τύποι εικονικοποίησης (native, hardware, OS-level, application). Διαχείριση δικτυακής υποδομής υπολογιστικών νεφών. Συνδεσιμότητα. Δρομολόγηση. Διαχείρισης κυκλοφορίας. Πολιτικές ασφαλείας. Συστήματα παρακολούθησης υπολογιστικών νεφών.

Εργαστήριο 2

Υλοποίηση υποδομής υπολογιστικού νέφους με χρήση του βασικού μεσολογισμικού OpenStack.

Τεχνολογίες αποθηκευτικών νεφών (Storage cloud technologies)

Αρχιτεκτονικές. Προσεγγίσεις επεκτασιμότητας. Συνοχή δεδομένων. Διαχείριση ονοματολογίας – namespace, αναπαραγωγής). Κατανεμημένα συστήματα αποθήκευσης αντικειμένων (οbjects) δεδομένων. «Υπολογιστική» αποθήκευση. Μοντέλο καθορισμού υπολογισμού, δεδομένων, περιορισμών εκτέλεσης, συνθηκών ενεργοποίησης και αλληλεπίδρασης με άλλα δεδομένα και υπηρεσίες. Πρόσβαση σε αντικείμενα βάσει περιεχομένου. Τεχνικές επισύναψης μεταδεδομένων στα αποθηκευμένα δεδομένα. Τεχνολογίες δημιουργίας δικτύων περιεχομένου. Μέθοδοι ανάκτησης δεδομένων.

Επεξεργασία και ανάλυση μεγάλων δεδομένων (Big data processing and analytics)

Επεκτασιμότητα. Απόδοση. Ανοχή σε σφάλματα. Λύσεις προγραμματισμού για μαζική επεξεργασία και ανάλυση μεγάλων δεδομένων με χρήση MapReduce / Hadoop, HDFS.

Υλοποίηση και διαμόρφωση συστοιχίας Hadoop (Hadoop cluster installation and configuration) Εργαστήριο 3

Υλοποίηση. Διαμόρφωση. Αξιοποίηση συστοιχίας Hadoop σε υποδομή νέφους που προσφέρεται με χρήση OpenStack για την εκτέλεση εργασιών MapReduce.

Επεξεργασία συζεύξεων σε MapReduce (Processing joins in MapReduce)

Επεξεργασία συζεύξεων. Έλλειψη εγγενούς υποστήριξης σε MapReduce. Τύποι συζεύξεων και αλγόριθμοι επεξεργασίας σε MapReduce. Συζεύξεις ισότητας. Theta συζεύξεις. Top-k συζεύξεις. Επισκόπηση τεχνικών αποτελεσματικής επεξεργασίας συζεύξεων.

Πρόσβαση ανάγνωσης / εγγραφής σε μεγάλα δεδομένα (Read/write access to big data)

Τυχαία πρόσβαση σε μεγάλα δεδομένα. Λειτουργικότητα ανάγνωσης / εγγραφής έναντι μόνο ανάγνωσης. BigTable της Google. Column-oriented key-value αποθήκευση. Apache HBase. Aνάπτυξη εργασιών επεξεργασίας δεδομένων σε HBase.

Επερωτήσεις με υψηλού επιπέδου γλώσσες (Declarative querying and high-level languages)

Δηλωτικές γλώσσες επερωτήσεων. Πλεονεκτήματα. Aποθήκευση δεδομένων για μεγάλα δεδομένα. Apache Hive. Γλώσσες υψηλού επιπέδου για προγράμματα ανάλυσης δεδομένων. Apache Pig. Γλώσσα Pig Latin. Επεξεργασία ροών εργασιών.

Περιορισμοί Hadoop (Limitations of Hadoop)

Περιορισμοί του Hadoop. Περιπτώσεις με μειωμένη απόδοση. Τρόποι οργάνωσης δεδομένων σε αρχεία. Ευρετηρίαση. Πρόωρος τερματισμός. Εξισορρόπηση φορτίου. Εκ νέου υπολογισμός. Επαναληπτική επεξεργασία. Επεξεργασία δεδομένων στη μνήμη. Ερευνητικά αποτελέσματα. Πρωτότυπα συστήματα που βελτιώνουν το Hadoop.

Προτεινόμενα Συγγράμματα

  • M. Trovati, R. Hill, A. Anjum, “Big-Data Analytics and Cloud Computing: Theory, Algorithms and Applications”, Ιανουάριος 2016
  • T. Erl, “Cloud Computing: Concepts, Technology & Architecture”, Μάιος 2013
  • T. White, “Hadoop: The Definitive Guide”, Σεπτέμβριος 2015
  • A. Holmes, “Hadoop in Practice”, Οκτώβριος 2012