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

Σχετικά έγγραφα
ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Παράλληλοι Αλγόριθµοι

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

Standard Template Library (STL) C++ library

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Υπολογιστική Πολυπλοκότητα

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

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

EPL 660: Lab 4 Introduction to Hadoop

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

Αλγόριθμοι Ταξινόμησης Μέρος 4

Α. Ερωτήσεις Ανάπτυξης

Ερωτήµατα διαστηµάτων σε περιβάλλοντα νεφών υπολογιστών

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Εισαγωγή στην Python. Διάλεξη 0

ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ. 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα).

Υπολογιστική Πολυπλοκότητα

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Σχέσεις, Ιδιότητες, Κλειστότητες

Υπολογιστικό Πρόβληµα

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ακ. έτος , 9ο Εξάμηνο ΗΜ&ΜΥ Ν. Κοζύρης Εξαμηνιαία Εργασία. Εισαγωγή στο MapReduce και στις βάσεις NoSQL

Εισαγωγή στους Αλγορίθμους

cov(x, Y ) = E[(X E[X]) (Y E[Y ])] cov(x, Y ) = E[X Y ] E[X] E[Y ]

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

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

Εισαγωγή στον Προγ/μό Υπολογιστών

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

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

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Μαλούτα Θεανώ Σελίδα 1

10.1 Υπολογίσιμες συναρτήσεις και αναδρομικά σύνολα

Φροντιστήριο 11 Λύσεις

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Εισαγωγή στην Πληροφορική

Επεξεργασία Ερωτημάτων Κορυφογραμμής σε Περιβάλλον Map/Reduce

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Θέματα Προγραμματισμού Η/Υ

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Περιεχόμενα. Προλεγόμενα... ix Κεφάλαιο 1 Εισαγωγή Κεφάλαιο 2 Δεδομένα και εκφράσεις Κεφάλαιο 3 Λογικές συνθήκες και δομές ελέγχου...

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή

Δομές Δεδομένων & Αλγόριθμοι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΙΑ ΙΚΑΣΙΑ ΜΕΤΑΒΑΣΗΣ ΣΤΟ CLOUD COMPUTING ΜΑΘΗΣΙΑΚΟΙ ΣΤΟΧΟΙ

P (Ηρ) = 0.4 P (Αρ) = 0.32 P (Απ) = 0.2

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Ασυμπτωτικός Συμβολισμός

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Παράδειγµα (4) Στοιχεία Θεωρίας Γραφηµάτων (2) Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς. v 2. u 3.

Εισαγωγή στους Υπολογιστές

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

Συναρτησιακός Προγραμματισμός 2008 Λύσεις στο Δεύτερο Φύλλο Ασκήσεων

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αριθμοθεωρητικοί Αλγόριθμοι

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Αλγόριθµοι και Πολυπλοκότητα

Κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Πολυγραφήµατα (Multigraphs)

Δομές Δεδομένων και Αλγόριθμοι

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

CSC 314: Switching Theory

Δομές Δεδομένων Εργαστηριακή Άσκηση Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο gkogkos@ceid.upatras.gr. Εισαγωγικά:

Διάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Πληροφορική 2. Δομές δεδομένων και αρχείων

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Αλγόριθµοι και Πολυπλοκότητα

Στοιχεία Θεωρίας Γραφηµάτων (2)

Αλγόριθμοι Ταξινόμησης Μέρος 3

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Transcript:

Εισαγωγή MapReduce ηµήτρης Λεβεντέας 6 Μαΐου 2010

Εισαγωγή Ορισµός Τι είναι Ορισµός Το MapReduce είναι ένα framework λογισµικού που είσηχθηκε από την Google για να υποστηρίξει κατανεµηµένο υπολογισµό σε µεγάλα σύνολα δεδοµένων σε συστοιχίες ( clusters) υπολογιστών. Βιβλιοθήκες έχουν γραφτεί σε C++, Java, Python, C#, Ruby και σε άλλες γλώσσες.

Εισαγωγή Χαρακτηριστικά Χαρακτηριστικά Εχει εµπνευστεί από τις συναρτήσεις map και reduce στον συναρτησιακό (functional) προγραµµατισµό. Μπορούν να χρησιµοποιούνται µόνο οι map και reduce. Μια από τις πιο διαδεδοµένες πλατφόρµες παράλληλου υπολογισµού. Εύκολη (στην υλοποίηση και χρήση) και αποδοτική παραλληλοποίηση. Χρησιµοποιεί και ακολουθιακό και παράλληλο υπολογισµό.

Εισαγωγή Χαρακτηριστικά Ποιοι το χρησιµοποιούν Πανεπιστήµια (Carnegie Mellon, Cornell, University of Maryland) Yahoo! Google Amazon Facebook Adobe IBM

Εισαγωγή Παραδείγµατα Εµπνευση >>> l = [1,2,3] >>> def square(n):... return n**2... >>> map(square, l) <map object at 0xb71cb86c> >>> for i in map(square, l):... print(i)... 1 4 9

Εισαγωγή Παραδείγµατα Εµπνευση (2) >>> from functools import reduce >>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5, 6, 7]) 28

Λειτουργία Βασικά Βασική Μονάδα Ορισµός Βασική µονάδα αποτελεί το Ϲεύγος key, value όπου κάθε κλειδί και κάθε τιµή αποτελούν δυαδικά αλφαριθµητικά. Η είσοδος σε οποιοδήποτε αλγόριθµο MapReduce είναι ένα σύνολο Ϲευγών key, value.

Λειτουργία Βασικά 3 ϕάσεις map shuffle reduce

Λειτουργία map Mapper Ορισµός Ο mapper µ είναι µια (randomized) συνάρτηση που παίρνει ως είσοδο ένα διατεταγµένο Ϲεύγος <key, value> και παράγει ως έξοδο οποιοδήποτε πεπερασµένο πολυσύνολο Ϲευγαριών <key, value>. Η λειτουργία map δεν πρέπει να κρατάει κατάσταση (stateless).

Λειτουργία suffle Suffler Ορισµός Το σύστηµα που υλοποιεί το MapReduce στέλνει όλες τις τιµές που συσχετίζονται µε ένα κλειδί στην ίδια µηχανή. Αυτό συµβαίνει χωρίς να χρειάζεται η επίβλεψη του προγραµµατιστή.

Λειτουργία reduce Reducer Ορισµός Ο reducer ρ είναι µια (randomized) συνάρτηση που παίρνει ως είσοδο δυαδικό αλφαριθµητικό κλειδί k και µια ακολουθία τιµών v 1, v 2,... που είναι επίσης δυαδικά αλφαριθµητικά και εξάγει ένα πολυσύνολο όπου τα στοιχεία του (Ϲευγάρια τιµών key, value αποτελούνται από το ίδιο κλειδί k.

Λειτουργία Παρατηρήσεις Εκτέλεση Προγράµµατος Μοντέλο Ορισµός Ενα map reduce πρόγραµµα αποτελείται από µια ακολουθία µ 1, ρ 1, µ 2, ρ 2,..., µ R, ρ R από mappers και reducers. Η είσοδος είναι ένα πολυσύνολο Ϲευγαριών U 0 = key; value.

Λειτουργία Παρατηρήσεις Εκτέλεση Προγράµµατος Φάσεις Για κάθε γύρο r = 1, 2,..., R: map: U r = k;u U r 1 µ r( k;u ) είναι το παραγώµενο πολυσύνολο αποτελούµενο από τα Ϲεύγη key, value που εξάγει ο µ r. shuffle: Για κάθε κλειδί k κατασκευάζονται το πολυσύνολο V k,r µε τιµές u i τέτοιες ώστε k; u i U r. reduce: Για κάθε κλειδί k, υπάρχει ένας reducer ρ r που παίρνει συγκεκριµένο κλειδί k και κάποια τυχαία διάταξη του V k,r. Παράγονται οι k; u 1, k; u 2,.... U r = k ρ r( k; V k,r ) που είναι πολυσύνολο Ϲευγών key; value.

Λειτουργία Παρατηρήσεις Παρατηρήσεις Ενα πρόγραµµα MapReduce µπορεί να αποτελείται από γύρους µε διαφορετικές map και reduce συναρτήσεις. Πρέπει να τελειώσουν όλες οι ϕάσεις reduce πριν µπούµε ξανά σε ϕάση map. Στη ϕάση reduce σε διαφορετικά κλειδιά k χρησιµοποιούνται διαφορετικοί reducers. Επειδή ο reducer έχει πρόσβαση σε όλες τις τιµές ενός κλειδιού, µπορεί να κάνει ακολουθιακούς υπολογισµούς. Οι mappers µπορούν να χειριστούν τα κλειδιά αυθαίρετα. Οι reducers δεν µπορούν να αλλάξουν τα κλειδιά. Ο υπολογισµός τερµατίζει όταν τερµατίσει ο τελευταίος reducer.

Λειτουργία Παρατηρήσεις Παρατηρήσεις (2) Αφού κάθε mapper µ r λειτουργεί σε µια µόνο πλειάδα κάθε ϕορά, το σύστηµα µπορεί να έχει πολλά στιγµυότυπα του µ r σε διαφορετικές πλειάδες στο U r 1 κάθε ϕορά. Αφού κάθε reducer ρ r λειτουργεί σε ένα µόνο κοµµάτι V k,r που έχει ένα συγκεκριµένο κλειδί k, πολλά στιγµυότυπα του reducer µπορούν να τρέχουν σε διαφορετικά V k,r όπου το κλειδί k αλλάζει κάθε ϕορά.

Εφαρµογή Παραδείγµατα k τάξης συχνότητα Ορισµός Εστω η ταξινοµηµένη λίστα S = a 1, a 2,..., a n στοιχείων a i [m] = {1, 2,..., m}. Για κάθε i [m], η συχνότητα f i είναι ο αριθµός των ϕορών που συναντάται στο S. Η k τάξης συχνότητα F k του S, για πραγµατικό k > 0 ορίζεται ως F k (S) = f k i. i [m]

Εφαρµογή Παραδείγµατα Αλγόριθµος Υπολογισµού Το πρόβληµα Ορισµός Εστω x το αλφαριθµητικό είσοδου µεγέθους n. Συµβολίζουµε µε x i το i-στό σύµβολο στο x. Για να αναπαραστήσουµε την είσοδο ως µια ακολουθία ( key, value ), ϑεωρούµε το x ως µια ακολουθία n Ϲευγαριών i; x i. Εστω $ ειδικό σύµβολο.

Εφαρµογή Παραδείγµατα Αλγόριθµος Υπολογισµού Η λύση 1 Αντιστοιχίζουµε κάθε πλειάδα σε ένα Ϲευγάρι µε το σύµβολο ως το κλειδί και την ϑέση ως την τιµή. Αρα ο mapper ορίζεται: µ 1 ( i; x i ) = x i ; i. 2 Ορίζουµε τον reducer ρ 1 ( x i ; {v 1,..., v m } ) = x i ; m k. 3 Θα αθροίσουµε τον αριθµό των εναποµείναντων Ϲευγαριών. Αντιστοιχίζουµε (map) κάθε Ϲευγάρι στο ίδιο κλειδί: µ 2 ( x i ; u ) = $; u. 4 Ολα τα Ϲευγάρια έχουν το ίδιο κλειδί. ρ 2 ( $; {u 1,..., u l } ) = $; i u i.

Η κλάση MapReduce (MRC) Αρχές Θέµατα 1 Χρόνος

Η κλάση MapReduce (MRC) Αρχές Θέµατα 1 Χρόνος 2 Μηχανές

Η κλάση MapReduce (MRC) Αρχές Θέµατα 1 Χρόνος 2 Μηχανές 3 Μνήµη

Η κλάση MapReduce (MRC) Σύγκριση PRAM 1 Αυθαίρετος αριθµός επεξεργαστών (πολυωνυµικός ως προς την είσοδο). 2 Απεριόριστη µνήµη. 3 Λειτουργούν σύγχρονα. 4 Κοινή είσοδος. 5 Υπολογίζει αποδοτικά την κλάση προβληµάτων NC.

Η κλάση MapReduce (MRC) Σύγκριση Η διαφορά Ορισµός The difference between theory and practice in theory is much less than the difference between theory and practice in practice. -- Randal L. Schwartz

Η κλάση MapReduce (MRC) Σύγκριση MapReduce vs PRAM 1 DMRC P 2 Αν P NC τότε DMRC NC.

Η κλάση MapReduce (MRC) Σύγκριση Η διαφορά Ορισµός The difference between theory and practice in theory is much less than the difference between theory and practice in practice. -- Randal L. Schwartz

Η κλάση MapReduce (MRC) Σύγκριση Η οµοιότητα Θεώρηµα Οποιοσδήποτε CREW (Concurrent Read Exclusive Write) PRAM αλγόριθµος που χρησιµοποιεί O(n 2 2ɛ ) επεξεργαστές και t = t(n) χρόνο µπορεί να τρέξει σε O(t) γύρους σε DRMC.

Η κλάση MapReduce (MRC) Σύγκριση Εφαρµογές 1 Πόσες ϕορές εµφανίζεται µια λέξη σε ένα σύνολο δεδοµένων. 2 ιάµέτρος τεράστιων γραφηµάτων. (Kang et. al) 3 Αριθµός τριγώνων σε ένα γράφηµα. (Tsourakakis et. al) 4 Ελάχιστο Γεννητικό έντρο (Minimum Spanning Tree) (Karloff et. al) 5 Υπαρξη µονοπατιού s t σε γράφηµα. 6... και άλλες...

Πώς γίνεται Μέθοδος Μέθοδος Εφαρµογής Ορισµός Εστω S ένα σύνολο. Ονοµάζουµε τη συνάρτηση f στο S MRC-παραλληλοποιήσιµη αν υπάρχουν συναρτήσεις g και h τέτοιες ώστε: 1 Για κάθε διάτµηση T = {T 1, T 2,..., T k } του S, όπου i T i = S και T i Tj = για κάθε i j, η f µπορεί να εκφραστεί ως: f(s) = h(g(t 1 ), g(t 2 ),..., g(t k )). 2 Οι g και h µπορούν να εκφραστούν σε O(log n) bits. 3 Οι g και h µπορούν να υπολογιστούν σε πολυωνυµικό χρόνο ως προς το S και κάθε έξοδος της g µπορεί να εκφραστεί σε O(log n) bits.

Επίλογος Αναφορές http://www.michaelnoll.com/wiki/writing_an_hadoop_mapreduce_program_in_python Howard Karloff, Siddarth Suri, Sergei Vassilvitskii. A Model of Computation for MapReduce Invited article in the Encyclopedia of Database Systems, Frequency Moments