Υπολογιστικά Νέφη Ενότητα 12: MapReduce Άγγελος Μιχάλας Τμήμα Μηχανικών Πληροφορικής ΤΕ
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Σε αυτή την ενότητα περιγράφεται το MapReduce. 4
Περιεχόμενα ενότητας (1/3) Εισαγωγή. Η φιλοσοφία του MapReduce. Ένα απλό παράδειγμα - Καταμέτρηση λέξεων. Καταμετρητής λέξεων και πίνακας αποτελεσμάτων. Πολλαπλές υποστάσεις του καταμετρητή λέξεων. Βελτίωση του καταμετρητή λέξεων για καλύτερη απόδοση. 5
Περιεχόμενα ενότητας (2/3) Όγκος δεδομένων της τάξης των Petabytes. Επίλυση του ζητήματος της κλιμάκωσης. Κατανομή της συλλογής δεδομένων. Διαίρει και Βασίλευε. Mapper and Reducer. Η διαδικασία του Map. Η διαδικασία του Reduce. Παραδείγματα εφαρμογών του MapReduce. 6
Περιεχόμενα ενότητας (3/3) Κατανεμημένο Grep. Μεγάλης κλίμακας παραγωγή αρχείων PDF. Τεχνητή νοημοσύνη. Γεωγραφικά δεδομένα. PageRank. 7
MapReduce
Εισαγωγή (1/2) Το MapReduce είναι ένα προγραμματιστικό μοντέλο. Χρησιμοποιήθηκε αρχικά από την Google για την επεξεργασία μεγάλων όγκων δεδομένων. Περίπου 20000 Petabytes ανά ημέρα. 9
Εισαγωγή (2/2) Βασίζεται σε ζεύγη <κλειδί, τιμή>. Μέθοδος Map. (Kin, Vin) list<(kinter, Vinter)>. Μέθοδος Reduce. (Kinter, list<vinter>) list<(kout, Vout)>. 10
Η φιλοσοφία του MapReduce Μία εφαρμογή εκκινεί: Μία υπόσταση master. (1/4) M υποστάσεις worker για τη φάση του Map. R υποστάσεις worker για τη φάση του Reduce. Η υπόσταση master διαχωρίζει τα δεδομένα εισόδου σε M τμήματα. Κάθε υπόσταση map διαβάζει το δικό της τμήμα δεδομένων εισόδου και το επεξεργάζεται. 11
Η φιλοσοφία του MapReduce (2/4) Τα αποτελέσματα της επεξεργασίας αποθηκεύονται σε τοπικά μέσα αποθήκευσης των servers όπου εκτελούνται οι υποστάσεις map. Όταν όλες οι υποστάσεις map ολοκληρώσουν την επεξεργασία των δεδομένων τους. Οι R υποστάσεις reduce διαβάζουν τα τμηματικά αποτελέσματα της πρώτης φάσης και τα συγχωνεύουν. 12
Η φιλοσοφία του MapReduce (3/4) Τα τελικά αποτελέσματα εγγράφονται από τις υποστάσεις reduce σε έναν κοινόχρηστο server αποθήκευσης. Η υπόσταση master : Επιβλέπει τις υποστάσεις reduce. Όταν όλες από αυτές αναφέρουν ότι ολοκλήρωσαν την εργασία τους, τερματίζεται η εφαρμογή. 13
Η φιλοσοφία του MapReduce (4/4) Εικόνα 1: Η φιλοσοφία του MapReduce. Πηγή: Διδάσκων (2015). 14
Ένα απλό παράδειγμα - Καταμέτρηση λέξεων (1/2) Σκεφτείτε μία μεγάλη συλλογή δεδομένων: {web, weed, green, sun, moon, land, part, web, green, }. Πρόβλημα: Καταμέτρηση του πλήθους των εμφανίσεων της κάθε λέξης. 15
Ένα απλό παράδειγμα - Καταμέτρηση λέξεων (2/2) Ας σχεδιάσουμε μία λύση για το πρόβλημα: Θα ξεκινήσουμε από το μηδέν. Θα προσθέσουμε περιορισμούς. Θα βελτιώσουμε τον σχεδιασμό με στόχο την καλύτερη απόδοση και την επεκτασιμότητα. 16
Καταμετρητής λέξεων και πίνακας αποτελεσμάτων {web, weed, green, sun, moon, land, part, web, green, }. Εικόνα 2: Καταμετρητής λέξεων και πίνακας αποτελεσμάτων. Πηγή: Διδάσκων (2015). 17
Πολλαπλές υποστάσεις του Πολλαπλά νήματα. καταμετρητή λέξεων Κλείδωμα των κοινών δεδομένων κατά τη φάση της επεξεργασίας. Εικόνα 3: Πολλαπλές υποστάσεις του καταμετρητή λέξεων. Πηγή: Διδάσκων (2015). 18
Βελτίωση του καταμετρητή λέξεων για καλύτερη απόδοση Διαχωρισμός parser και καταμετρητή. Δεν απαιτείται κλείδωμα των δεδομένων. Εικόνα 4: Βελτιωμένος καταμετρητής λέξεων. Πηγή: Διδάσκων (2015). 19
Όγκος δεδομένων της τάξης των Petabytes Εικόνα 5: Όγκος δεδομένων της τάξης των Petabytes. Πηγή: Διδάσκων (2015). 20
Επίλυση του ζητήματος της κλιμάκωσης Μία απλή μηχανή δεν μπορεί να εξυπηρετήσει όλα τα δεδομένα. Χρειαζόμαστε ένα κατανεμημένο σύστημα. Σημαντικά ζητήματα: Ανοχή σε σφάλματα. Εξισορρόπηση φόρτου. Παρακολούθηση (monitoring). Αξιοποίηση του παραλληλισμού που παρέχεται από το διαχωρισμό του parsing και της καταμέτρησης. 21
Κατανομή της συλλογής δεδομένων Ζήτημα: Διαχείριση της μεγάλης ποσότητας δεδομένων. Εικόνα 6: Κατανομή της συλλογής δεδομένων. Πηγή: Διδάσκων (2015). 22
Διαίρει και Βασίλευε Στο παράδειγμά μας: #1: Παράλληλες διεργασίες parse. #2: Παράλληλες διεργασίες καταμέτρησης. Το parsing είναι η διαδικασία map: MAP: input Ζεύγη <κλειδί, τιμή>. Η καταμέτρηση είναι η διαδικασία reduce: REDUCE: Συγχωνευμένα ζεύγη <κλειδί,τιμή>. Εικόνα 7: Διαίρει και Βασίλευε. Πηγή: Διδάσκων (2015). 23
Mapper και Reducer Εικόνα 8: Mapper και Reducer. Πηγή: Διδάσκων (2015). 24
Η διαδικασία του Map MAP: Εισαγωγή δεδομένων Ζεύγος <κλειδί, τιμή>. Εικόνα 9: Η διαδικασία του Map. Πηγή: Διδάσκων (2015). 25
Η διαδικασία του Reduce MAP: Εισαγωγή δεδομένων Ζεύγος <κλειδί, τιμή>. REDUCE: Ζεύγος <κλειδί, τιμή> <αποτέλεσμα>. Εικόνα 10: Η διαδικασία του Reduce. Πηγή: Διδάσκων (2015). 26
Παραδείγματα εφαρμογών του MapReduce
Κατανεμημένο Grep (1/6) Αρκετά διαδεδομένο παράδειγμα. Το demo πρόγραμμα συνοδεύει το Nutch, από το οποίο προήλθε το Hadoop. 28
Κατανεμημένο Grep (2/6) grep -Eh <regex> <indir>/* sort uniq -c sort -nr. Καταμέτρηση των γραμμών που ταιριάζουν στο <regex> σε όλα τα αρχείο που βρίσκονται στην τοποθεσία <indir> κι εμφάνιση των επιμέρους πληθών σε φθίνουσα σειρά. Εικόνα 11: Κατανεμημένο Grep. Πηγή: Διδάσκων (2015). 29
Κατανεμημένο Grep (3/6) grep -Eh 'A C' in/* sort uniq -c sort -nr. Ανάλυση αρχείων καταγραφής της πρόσβασης σε web server με σκοπό την εύρεση τον δημοφιλέστερων σελίδων που ταιριάζουν σε ένα δοθέν υπόδειγμα. 30
Κατανεμημένο Grep (4/6) Η μέθοδος Map: Είσοδος: Ζεύγος (file offset, γραμμή). Έξοδος: Είτε μία κενή λίστα (αν καμία γραμμή δεν ταιριάζουν). Είτε ζεύγη κλειδιού-τιμής [(γραμμή, 1)] (αν η γραμμή ταιριάζει). 31
Κατανεμημένο Grep (5/6) Η μέθοδος Reduce: Είσοδος (γραμμή, [1, 1,...]). Έξοδος (γραμμή, n). Όπου n είναι ο αριθμός των συνολικών εμφανίσεων της γραμμής. 32
Κατανεμημένο Grep (6/6) Εικόνα 12: Μέθοδοι Map και Reduce στο κατανεμημένο Grep. Πηγή: Διδάσκων (2015). 33
Μεγάλης κλίμακας παραγωγή αρχείων PDF (1/4) Οι New York Times χρειάστηκαν να παράξουν αρχεία PDF για 11.000.000 άρθρα. Άρθρα που από το 1851 έως το 1980. Ήταν σε μορφή εικόνων προερχόμενες από σαρώσεις πρωτότυπων εγγράφων. Κάθε άρθρο αποτελείται από ένα σύνολο εικόνων TIFF. Ο κώδικας για την παραγωγή των PDF είναι σχετικά απλός. 34
Μεγάλης κλίμακας παραγωγή αρχείων PDF (2/4) Οι τεχνολογίες που χρησιμοποιήθηκαν: Amazon Simple Storage Service (S3). Κλιμακωτή διαδικτυακή αποθήκευση. Αποθήκευση κι ανάκτηση οποιουδήποτε όγκου δεδομένων. Ασύγχρονο κι αποκεντρωμένο σύστημα που στοχεύει στην μείωση των περιορισμών κλιμάκωσης και των απλών σημείων αποτυχίας (single points of failure). 35
Μεγάλης κλίμακας παραγωγή αρχείων PDF (3/4) Οι τεχνολογίες που χρησιμοποιήθηκαν (Συνέχεια): Amazon Elastic Compute Cloud (EC2). Εικονικά υπολογιστικά περιβάλλοντα σχεδιασμένα για χρήση μαζί με άλλες υπηρεσίες της Amazon services (ειδικότερα με S3). Hadoop. Ανοιχτού κώδικα υλοποίηση του MapReduce. 36
Μεγάλης κλίμακας παραγωγή Αποτελέσματα: αρχείων PDF (4/4) 4TB σαρωμένων αρχείων στάλθηκαν σε S3. Ένα cluster από μηχανές EC2 ρυθμίστηκε ώστε να κατανέμει την παραγωγή των PDF μέσω του Hadoop. Χρησιμοποιώντας 100 μηχανές EC2 σε 24 ώρες, οι New York Times κατάφεραν να μετατρέψουν τα 4TB σκαναρισμένων εικόνων σε 1.5TB αρχείων PDF. 37
Τεχνητή νοημοσύνη Υπολογισμός στατιστικών. Κεντρικό Οριακό Θεώρημα. N κόμβοι ψηφοφόροι, ψηφίζουν (map). Συγκέντρωση των ψήφων κι εξαγωγή συμπερασμάτων (reduce). 38
Γεωγραφικά δεδομένα Μεγάλα σύνολα δεδομένων συμπεριλαμβανομένων δεδομένων χαρτογράφησης και πλοήγησης. Παραδείγματα χρήσης του MapReduce από το Google Maps: Εντοπισμός οδών που συνδέονται με μια δοθείσα διασταύρωση. Σύνθεση των επιμέρους τμημάτων του χάρτη. 39
Γεωγραφικά δεδομένα - Παράδειγμα 1 Είσοδος: Λίστα δρόμων και διασταυρώσεων. Map: Δημιουργία ζευγών διασυνδεδεμένων σημείων (δρόμος, διασταύρωση) ή (δρόμος, δρόμος). Ταξινόμηση σύμφωνα με το κλειδί. Reduce: Εξαγωγή λίστας με ζεύγη που διαθέτουν το ίδιο κλειδί. Έξοδος: Λίστα όλων των σημείων που συνδέονται σε έναν συγκεκριμένο δρόμο. 40
Είσοδος: Γεωγραφικά δεδομένα - Παράδειγμα 2 (1/2) Ένας γράφος που περιλαμβάνει: Ένα δίκτυο κόμβων που αναπαριστούν θέσεις στο χάρτη. Όλα των βενζινάδικα που υπάρχουν στο χάρτη, καθώς και των θέσεών τους. Map: Αναζήτηση σε ακτίνα πέντε χιλιομέτρων από βενζινάδικα και καταγραφή της απόστασης του κάθε ένα. 41
Γεωγραφικά δεδομένα - Παράδειγμα 2 (2/2) Ταξινόμηση σύμφωνα με το κλειδί. Reduce: Για κάθε κόμβο-θέση, υπολογισμός της διαδρομής με τη μικρότερη απόσταση προς το κάθε βενζινάδικο που εντοπίστηκε από τη μέθοδο Map. Έξοδος: Ένας γράφος με μαρκαρισμένο το κοντινότερο βενζινάδικο για τον κάθε κόμβοθέση. 42
PageRank (1/3) Υλοποίηση της Google που χρησιμοποιεί MapReduce με στόχο την αξιολόγηση των εγγράφων που υπάρχουν στον Ιστό. Αρχικά αναπτύχθηκε στο πανεπηστήμιο του Stanford από τους ιδρυτές της Google, Larry Page και Sergey Brin, το 1995. 43
PageRank (2/3) Οδήγησε σε ένα λειτουργικό προτότυπο που τελικά ονομάστηκε Google το 1998. Πλέον παρέχει τη βάση για όλα τα εργαλεία αναζήτησης της Google. 44
PageRank (3/3) Προσομοιώνει έναν τυχαίο σέρφερ. Το Map ξεκινάει με ζεύγη (URL, λίστα από URLs). Κάνει Map ξανά λαμβάνοντας υπόψη τα παραπάνω δεδομένα. Για κάθε u url επιστρέφει (u, PR/λίστα από URLs) καθώς και (u, νέα λίστα από URLs). Reduce. Λαμβάνει ζεύγη (URL, λίστα από URLs) και πολλά ζεύγη (URL, τιμή) και υπολογίζει (URL, (νέο PR, λίστα από URLs)). 45
Σημείωμα Αναφοράς Copyright ΤΕΙ Δυτικής Μακεδονίας, Μιχάλας Άγγελος. «Υπολογιστικά Νέφη». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: 46
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 47
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 48
Βιβλιογραφία 1. Συστήματα Παράλληλης Επεξεργασίας, Παπακωνσταντίνου Γεώργιος Κ., Τσανάκας Παναγιώτης Δ., Θεοχάρης Θ., Εκδόσεις Σ. Αθανασόπουλος & ΣΙΑ Ο.Ε. 2. Αρχιτεκτονική πλατφόρμας υπηρεσιών ιστού, Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, Donald F. Ferguson, Εκδόσεις Κλειδάριθμος ΕΠΕ. 3. Το πλαίσιο της επιστήμης του Web, Berners-Lee, Hall, Hendler, Ohara, Shadbolt, Weitzner, μ. Εκδόσεις Βαφόπουλος & ΣΙΑ Ο.Ε. 49
Τέλος Ενότητας