Μαζικός Παραλληλισμός λ με Map - Reduce. Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων

Σχετικά έγγραφα
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

MapReduce: Simplified Data Processing on Large Clusters

Εισαγωγικά στοιχεία για παραλληλισμό και ΒΔ Μοντέλα και αρχιτεκτονικές παραλληλισμού Διαμερισμός δεδομένων Παράλληλη επεξεργασία ερωτημάτων

Υλοποίηση κατασκευής δέντρου επιθεμάτων σε Hadoop MapReduce

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

Υπολογιστικά Νέφη. Ενότητα 12: MapReduce. Άγγελος Μιχάλας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

EPL 660: Lab 4 Introduction to Hadoop

Επεξεργασία Ερωτήσεων

Πληροφοριακά Συστήματα Διοίκησης

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Big Data. CERN/LHC: 40TB/μέρα (15PB/έτος) Πολλά, πολλά ακόμα Web logs, αρχεία ομιλιών, ιατρικοί φάκελοι, κλπ. για όλους...

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Πληροφοριακά Συστήματα Διοίκησης

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

PostgreSQL. Oracle. Εαρινό Εξάμηνο

Το εσωτερικό ενός Σ Β

Standard Template Library (STL) C++ library

Μαδηθόο Παξαιιειηζκόο κε Map Reduce θαη Spark. Δηζαγσγηθά Μνληέιν Θέκαηα πινπνίεζεο Παξαδείγκαηα Spark

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

EPL660: Information Retrieval and Search Engines Lab 5

Ηλεκτρονικοί Υπολογιστές II


Βάσεις Δεδομένων (Databases)

Κατανεμημένα Συστήματα Ασκήσεις.

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αποδοτική επεξεργασία ερωτημάτων κατάταξης στο Map/Reduce

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας

Τίτλος Πακέτου Certified Computer Expert-ACTA

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

ΜΕΛΕΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΠΟΛΥΠΥΡΗΝΟΥ ΕΠΕΞΕΡΓΑΣΤΗ ΜΕ ΕΦΑΡΜΟΓΕΣ PHOENIX

Τμήμα Πληροφορικής ΑΠΘ

Επεξεργασία Ερωτήσεων

Π Τ Υ Χ Ι Α Κ Η /ΔΙ Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

Ηλεκτρονικοί Υπολογιστές II

Σχεδιασμός Βάσεων Δεδομένων

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

DELETE, UPDATE, INSERT.

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

DELETE, UPDATE, INSERT

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επερωτήσεις σύζευξης με κατάταξη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Εαρινό Εξάμηνο

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

Δομή Ηλεκτρονικού υπολογιστή

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

ΠΑΡΑΔΕΙΓΜΑ ΣΤΟ BIZAGI ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επεξεργασία ερωτημάτων

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Ηλεκτρονικοί Υπολογιστές II

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

MapReduce. Κατανεμημένα Συστήματα

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Σχεδιασμός Επεξεργασίας και Τηλεπεξεργασίας

Βελτιστοποίηση επερωτημάτων

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Από τα Δεδομένα στην Πληροφορία: Διδακτικό Σενάριο για Εισαγωγή στη Γλώσσα SQL. Σ. Φίλου Β. Βασιλάκης

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

Αρχιτεκτονική Υπολογιστών

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Posting File. D i. tf key1 [position1 position2 ] D j tf key2... D l.. tf keyl

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Σημεία ελέγχου (Checkpoints)

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Δυναμικός Κατακερματισμός


Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ ΕΡΓΑΣΤΗΡΙΟ 2

Βάσεις Δεδομένων 2. Φροντιστήριο Αλγόριθμοι Επεξεργασίας και Βελτιστοποίησης Επερωτήσεων. Ημερ: 27/5/2008 Ακ.Έτος

Transcript:

Μαζικός Παραλληλισμός λ με Map - Reduce Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων

Ευχαριστίες Οι διαφάνειες στηρίζονται σε μεγάλο βαθμό στο υλικό που είναι διαθέσιμο από το εργαστήριο Infolab του Stanford γιαταμαθήματα CS345A και CS347. http://infolab.stanford.edu 2

Τι είναι το MapReduce Πρόκειται για ένα προγραμματιστικό μοντέλο, που είναι κατάλληλο για επεξεργασία πολύ μεγάλων όγκων δεδομένων σε κατανεμημένους πόρους. Βασίζεται σε ιδέες γνωστές από δεκαετίες! Αρχικά αναπτύχθηκε από την Google αλλά οι περισσότεροι το χρησιμοποιούν μέσω της υλοποίησης ανοιχτού κώδικα Hd Hadoop. 3

Δημιουργία Ευρετηρίου (index) κειμένου - Ι Ροή σελίδων buffers 1 rat (rat, 1) (cat, 2) dog (dog, 1) (dog, 1) 2 dog (dog, 2) (dog, 2) cat (cat, 2) (dog, 3) rat (rat, 3) (rat, 1) 3 dog (dog, 3) (rat, 3) Ενδιάμεσα αποτελέ- σματα Δίσκος Φόρτωση Tokenizing Ταξινόμηση 4

Δημιουργία Ευρετηρίου (index) κειμένου - ΙΙ (cat, 2) (dog, 1) (ant, 5) Ενδιάμεσα αποτελέ- σματα (dog, 2) (dog, 3) (rat, 1) (rat, 3) (ant, 5) (cat, 4) (dog, 4) (dog, 5) (eel, 6) Merge (cat, 2) (cat, 4) (dog, 1) (dog, 2) (dog, 3) (dog, 4) (dog, 5) (eel, 6) (rat, 1) (rat, 3) (ant: 2) (cat: 2,4) (dog:12345) 1,2,3,4,5) (eel: 6) (rat: 1, 3) Τλ Τελικό αποτέλεσμα 5

Γενικό Μοντέλο επεξεργασίας: Map Ροή σελίδων Map buffers 1 rat (rat, 1) (cat, 2) dog (dog, 1) (dog, 1) 2 dog (dog, 2) (dog, 2) cat (cat, 2) (dog, 3) rat (rat, 3) (rat, 1) 3 dog (dog, 3) (rat, 3) Ενδιάμεσα αποτελέ- σματα Δίσκος Φόρτωση Tokenizing Ταξινόμηση 6

Γενικό Μοντέλο επεξεργασίας: Reduce (cat, 2) (dog, 1) (ant, 5) Ενδιάμεσα αποτελέ- σματα (dog, 2) (dog, 3) (rat, 1) (rat, 3) (ant, 5) (cat, 4) (dog, 4) (dog, 5) (eel, 6) Merge (cat, 2) (cat, 4) (dog, 1) (dog, 2) (dog, 3) (dog, 4) (dog, 5) (eel, 6) (rat, 1) (rat, 3) (ant: 2) (cat: 2,4) (dog:12345) 1,2,3,4,5) (eel: 6) (rat: 1, 3) Reduce Τλ Τελικό αποτέλεσμα 7

Συνοπτική Περιγραφή map ( κλειδί, τιμή ) λίστα από ζεύγη (κλειδί, τιμή ) ) reduce (κλειδί, λίστα από τιμές ) ->τελική_τιμή (list) Ή αλλιώς: Map: (k1, v1) [(k2, v2)] Reduce: (k2, [v2]) [v3] //σε εκδόσεις Hadoop μπορεί να αλλάξει το κλειδί k2 σε k3. -Το κλειδί δεν έχει εδώ την αυστηρή έννοια των ΒΔ, δηλ. μπορούν να υπάρχουν περισσότερες ενδιάμεσες τιμές με το ίδιο κλειδί. 8

map(string doc, String value); // doc: όνομα εγγράφου // value: περιεχόμενο εγγράφου for each word w in value: EmitIntermediate(w, 1 ); Παράδειγμα: καταμέτρηση εμφανίσεων λέξεων Παράδειγμα: map(doc, cat dog cat bat dog ) emits [cat 1], [dog 1], [cat 1], [bat 1], [dog 1] 9

Παράδειγμα: καταμέτρηση εμφανίσεων λέξεων reduce(string key, Iterator values); // key: λέξη // values: λίστα με καταμετρήσεις int result = 0; for each v in values: result += ParseInt(v) Emit(AsString(result)); Παράδειγμα: reduce( dog, 1 1 1 1 ) emits 4 10

Σύνοψη παράλληλης εκτέλεσης User Program fork fork fork assign map Master assign reduce Input Data Split 0 read Split 1 Split 2 Worker Worker Worker locall write remote read, sort Worker Worker write Output File 0 Output File 1

Μοντέλο επεξεργασίας -Map Η είσοδος στη συνάρτηση map (π.χ., γραμμές από αρχείο, εγγραφές από ΒΔ, κλπ.) έχουν τη μορφή (κλειδί, τιμή). Η συνάρτηση map μετατρέπει κάθε ένα τέτοιο ζευγάρι σε ένα άλλο ζευγάρι (κλειδί, τιμή ). Επεξεργάζεται κάθε στοιχείο της εισόδου ξεχωριστά (γι αυτό και παραλληλίζεται εύκολα). Αντιστοιχεί στο ενδιάμεσο αποτέλεσμα (δηλ. την τιμή ) ένα κλειδί. O βαθμός παραλληλισμού καθορίζεται ρζ από το σύστημα. 12

Μοντέλο επεξεργασίας - Reduce H επεξεργασία της συνάρτησης reduce γίνεται αφού ολοκληρωθεί η επεξεργασία της map. Για κάθε ξεχωριστό κλειδί δί, δημιουργείται μία λίστα που περιέχει όλες τις αντίστοιχες τιμές. Η συνάρτηση reduce υπολογίζει μία τελική τιμή για το κλειδί επεξεργάζοντας τη λίστα με τις τιμές που παρήγαγε η map (το κλειδί δεν αλλάζει). Οι τιμές για κάθε κλειδί μπορούν να υπολογίζονται παράλληλα. 13

Συντονισμός κόμβος master O κόμβος master Ελέγχει αν μια εργασία (task) δεν έχει εκτελεστεί (idle), εκτελείται (in-progress) ή έχει ολοκληρωθεί (completed). Οι εργασίες χρονοδρομολογούνται μόλις ελευθερώνονται κόμβοι. Όταν ολοκληρώνεται μία map εργασία, ο master ενημερώνεται για τη θέση και το μέγεθος μγ των ενδιάμεσων αποτελεσμάτων,, που είναι σε τόσα αρχεία, όσα και οι κόμβοι για τη reduce. Κατόπιν ενημερώνονται οι κόμβοι για τη reducer. Επίσης ο master ελέγχει περιοδικά (με pings) τους κόμβους για τον εντοπισμόσφαλμάτων. μ 14

Θέματα υλοποίησης Συναρτήσεις συνδυασμού Σύστημα Αρχείων Διαμερισμός εισόδου και κλειδιών Αποτυχίες Εργασίες Backup Ταξινόμηση αποτελεσμάτων 15

Συναρτήσεις συνδυασμού (combine) [cat 1], [cat 1], [cat 1]... worker worker [dog 1], [dog 1]... worker Παρόμοιο με την εκτέλεση ενός τοπικού reduce στα ενδιάμεσα αποτελέσματα. [cat 3]... worker worker [dog 2]... worker 16

Κατανεμημένο Σύστημα Αρχείων Όλες οι μετακινήσεις δεδομένων γίνονται μέσω ενός κατανεμημένου συστήματος αρχείων. Ο κάθε worker μπορεί να προσπελαύνει κάθε μέρος της εισόδου Ο κάθε reduce worker έχει πρόσβαση και στους τοπικούς δίσκους κάθε worker μπορεί να γράφει στο δίσκο το κομμάτι της απάντησης που συνεισφέρει. Η απάντηση είναι σ ένα κατανεμημένο αρχείο 17

Διαμερισμός εισόδου και κλειδιών Πόσοι θα είναι κόμβοι worker; Καλύτερα να υπάρχουν πολλά κομμάτια εισόδου ανά κόμβο, για καλύτερη εξισορρόπηση φόρτου και για καλύτερη αντιμετώπιση αποτυχιών. Σε πόσα κομμάτια θα διαμεριστεί η είσοδος; Πιο πολλά από τον αριθμό των κόμβων, Που είναι ήδη ήημγ μεγάλος. Στα τυπικά παραδείγματα της google ο διαμερισμός είναι σε κομμάτια των 64MB. Η ανάθεση γίνεται έτσι ώστε να ανατίθονται κομμάτια της εισόδου στους πιο κοντινούς κόμβους. Όταν αυτό είναι εφικτό 18

Αποτυχίες Ο κόμβος Master εντοπίζει αποτυχίες και ξανα αναθέτει την εργασία του κόμβου που απέτυχε σε άλλο κόμβο worker. Aν οι αποτυχίες οφείλονται σε λάθη στα δεδομένα εισόδου, τότε το αντίστοιχο αρχικό κομμάτι δεδομένων μπορεί να αφαιρεθεί. split j worker ok? master redo j worker 19

Backup Εργασίες Υπάρχει περίπτωση ένα μηχάνημα να έχει μείνει πίσω στην εκτέλεση των εργασιών (straggler) λόγω π.χ., κάποιου τεχνικού προβλήματος, όπως χαλασμένος δίσκος. Εξαιτίας αυτού του μηχανήματος, όλη η επεξεργασία καθυστερεί. Όταν πολλές διεργασίες εκτελούνται παράλληλα, η πιο αργή καθορίζει και τον χρόνο ολοκλήρωσης. Λύση: όταν πλησιάζει η συνολική εργασία προς το τέλος, τότε ο συντονιστής χρονοδρομολογεί πολλαπλές φορές τις map/reduce υποεργασίες που απομένουν. Με το σκεπτικό ότι τουλάχιστον μία θα ολοκληρωθεί στον προβλεπόμενο χρόνο. Υπάρχουν επιπλέον μηχανισμοί για την διαγραφή περιττών (διπλών) αποτελεσμάτων όταν όλες οι υποεργασίες τελειώνουν κανονικά. 20

Ταξινόμηση αποτελεσμάτων Γίνεται σε κάθε κόμβο βάσει κλειδιού. [k 1, v 1 ] [k 3, v 3 ] [k 1, T 1 ] [k 2, T 2 ] [k 3, T 3 ] [k 4, T 4 ] 21

Παράδειγμα: ταξινόμηση εγγραφών 5 e 3 c 6 f 2 b 1 a 6 f* W1 W2 3 c 5 e 6 f 1 a 2 b 6 f* W5 1 a 3 c 5 e 7 g 9 i 8 h 7 g 4 d 9 i W3 9 i 7 g 4 d 8 h W6 2 b 4 d 6 f 6 f* 8 h Map: extract k, output [k, record] Reduce: Τίποτα! 22

Παραδείγματα -A Κατανεμημένο Grep: map: παράγει μία γραμμή αν η συγκεκριμένη γραμμή ταυτίζεται με το πρότυπο. reduce: απλή αντιγραφή των ενδιάμεσων δά αποτελεσμάτων στην έξοδο. 23

Παραδείγματα -B Καταμέτρηση ητης συχνότητας προσπέλασης μιας διεύθυνσης URL: Map:επεξεργασία των αρχείων log και παραγωγή ενδιάμεσων αποτελεσμάτων της μορφής <URL, 1> για κάθε προσπέλαση. Reduce: πρόσθεση όλων των τιμών για κάποιο συγκεκριμένο URL και παραγωγή ζευγών <URL, total count>. 24

Παραδείγματα - Γ Αντίστροφος Γράφος Web-Link: Map: παραγωγή ζευγών <target, source> για κάθε σύνδεσμο target προς μια σελίδα από την σελίδα source που εκείνη τη στιγμή επεξεργάζεται. Reduce: απλή αντιγραφή στην έξοδο των αποτελεσμάτων που έχουν τη μορφή ζευγών <target, list(source)>. 25

Παραδείγματα ερωτημάτων Έστω η σχέση Employees(id, dno, salary). θέλουμε να υπολογίσουμε το ερώτημα: Select dno, SUM(salary) from employees where salary>1000 group by dno Map: για κάθε πλειάδα με salary>1000 δημιουργείται ένα ζεύγος (dno,salary) Reduce: για κάθε τιμή του dno, η είσοδος είναι όλες οι αντίστοιχες τιμές salary. Η συνάρτηση απλώς τις προσθέτει. 26

Παραδείγματα σχεσιακών τελεστών Τελεστές όπως η επιλογή σ C ή η προβολή π A απαιτούν μόνο κατάλληλη συνάρτηση map. Έστω η σύνδεση R(X,Y) S(Y,Z). Map: Είσοδος: (όνομα σχέσης R ή S, μία πλειάδα t) Έξοδος: λίστα (τιμή του Υ, λίστα από (όνομα σχέσης, υπόλοιπο πλειάδας Χ ή Ζ)). Reduce: για κάθε τιμή του Υ, δημιουργεί όλα τα ζευγάρια ΧΖ. 27

Πλεονεκτήματα Το μοντέλο κρύβει τις τεχνικές λεπτομέρειες της παραλληλοποίησης και παρέχει built-in in μηχανισμούς ανάκαμψης από σφάλματα. Πολλά προβλήματα μπορούν να εκφραστούν με βάση το μοντέλο. Οι εφαρμογές κλιμακώνονται σε χιλιάδες μηχανήματα. Αλλά παρόμοια κλιμάκωση επιτυγχανεται και με παράλληλη λ επεξεργασία ερωτημάτων σε αρχιτεκτονικές shared nothing. 28

Μειονεκτήματα Το μοντέλο επεξεργασίας ξργ ςμοναδικής εισόδου και δύο σταδίων δεν είναι ευέλικτο ώστε να προσαρμόζεται σε όλα τα επιθυμητά σενάρια. Απαιτείται η συγγραφή κώδικα ακόμη και για τους πιο συνηθισμένους τελεστές, όπως επιλογής και προβολής. Δήλωση εργασιών σε πολύ χαμηλότερο επίπεδο σε σχέση με την SQL. Ο κώδικας μέσα στις συναρτήσεις map και reduce δεν είναι φανερός δυσκολία στην βελτιστοποίηση. 29

Υλικό για μελέτη MapReduce: Simplified Data Processing on Large Clusters, Jeffrey Dean and Sanjay Ghemawat, http://labs.google.com/papers/mapreduce-osdi04.pdf g p p p p Hadoop: υλοποίηση ανοιχτού κώδικα Pig Latin: A Not-So-Foreign Language for Data Processing, Christopher Olston, Benjamin Reedy, Utkarsh Srivastavava, Ravi Kumar, Andrew Tomkins, http://wiki.apache.org/pig/ 30