Πανεπιστήμιο Ιωαννίνων Ανάκτηση Πληροφορίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος 2009-2010 MapReduce: Simplified Data processing on Large Clusters Φώτης.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προχωρημένα θέματα βάσεων δεδομένων
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
ΚΕΙΜΕΝΟ  Ο πρώτος τρόπος απεικόνισης πληροφορίας (και βασικός ως σήμερα).  Αδυναμία πρώτων υπολογιστών να χειριστούν άλλη μορφή πληροφορίας.  Πρόβλημα.
Ο Ηλεκτρονικός Υπολογιστής
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Λογισμικο συστηματοσ Κεφάλαιο 4ο
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Message Passing Interface (MPI)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
TEMPLATES STANDARD TEMPLATE LIBRARY ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C Evangelos Theodoridis.
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Βάσεις Δεδομένων (ΚΒΔ)
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 9: Input / Output Εβδομάδα 8: Είσοδος / Έξοδος [Input / Output]
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Λειτουργικά συστήματα ΙΙ
Λειτουργικά συστήματα ΙΙ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Δεδομένα, Πληροφορίες και Ηλεκτρονικοί Υπολογιστές
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Αχιλλέας Κύρου Ορέστης Αγαθοκλέους Χάρης Παναγή
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές Εξαιρέσεις.
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Διασύνδεση Java Εφαρμογών με ΒΔ Π. Φιτσιλής 1.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: To λογισμικό του υπολογιστή
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Γράφημα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Συνδυαστικό αντικείμενο που αποτελείται από.
Λειτουργικά Συστήματα Πολλών Χρηστών
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
Γνωριμία με το Λογισμικό του υπολογιστή Μια παρουσίαση για τους μαθητές της Α΄ Τάξης του 49ου Γυμνασίου Αθήνας Διδάσκων: Χ. Μοτσενίγος 49ο Γυμνάσιο Αθήνας.
Ανοικτό σύστημα σύστημα ολοκληρωμένης διαχείρισης εκτυπωτικών πόρων στα αναγνωστήρια της Ακαδημαϊκής Βιβλιοθήκης, στο Πανεπιστήμιο Κρήτης Μιχάλης Καλοχριστιανάκης.
Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014: Κώστας Στάμος)
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΤΕΧΝΙΚΩΝ ΕΡΓΩΝ
Ασκήσεις στην Java-XML
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Πίνακες και αλφαριθμητικά
Java DataBase Connectivity
Εφαρμογές Υπολογιστών
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
Κεφάλαιο 10 Streams.
Εισαγωγή στη Java (Μέρος Α’)
Μεταγράφημα παρουσίασης:

Πανεπιστήμιο Ιωαννίνων Ανάκτηση Πληροφορίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος MapReduce: Simplified Data processing on Large Clusters Φώτης Σιταράς ΑΜ 205 Τσουρού Σταυρούλα ΑΜ 190

Περιγραφή Προβλήματος  Ανάγκη για επεξεργασία μεγάλου όγκου δεδομένων στα συστήματα ανάκτησης πληροφορίας  Λύση: κατανομή της επεξεργασίας των δεδομένων σε πολλές υπολογιστικές μονάδες  MapReduce: κατανεμημένο προγραμματιστικό μοντέλο της google για την επεξεργασία μεγάλου όγκου δεδομένων

Λειτουργία του MapReduce – Περιγραφή Μοντέλου  Δεδομένα εισόδου της μορφής key/value  Συνάρτηση Map: επεξεργασία δεδομένων εισόδου και παραγωγή ενδιάμεσων μορφών δεδομένων  Συνάρτηση Reduce: συγχώνευση ενδιάμεσων δεδομένων με βάση την τιμή του κλειδιού  Δεδομένα εξόδου της μορφής key/value Map (k1, v1) output  list (k2, v2) Reduce (k2, list(v2)) output  list(v2)

Λειτουργία του MapReduce – Παράδειγμα Υλοποίησης map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1"); reduce(String key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));

Παραδείγματα  Καταμέτρηση προσπελάσεων ενός URL input: output:  Reverse Web-Link Graph input: output:  Ανεστραμμένα ευρετήρια input: output:

Λειτουργία Συστήματος

Ανοχή Σφαλμάτων  Αποτυχία εργάτη Αποτυχία map εργάτη – ολοκληρωμένη διαδικασία Αποτυχία reduce εργάτη – ολοκληρωμένη διαδικασία Αποτυχία map/reduce εργάτη – μη ολοκληρωμένη διαδικασία  Αποτυχία master ακύρωση των υπολογιστικών διαδικασιών που εκτελούνται

Χαρακτηριστικά Συστήματος  Δρομολόγηση με βάση την τοπικότητα τα δεδομένα εισόδου χωρίζονται σε Μ κομμάτια και 3 αντίγραφα από το καθένα αποθηκεύονται σε διαφορετικά μηχανήματα δρομολόγηση κάθε map διαδικασίας στον κόμβο που έχει τα κατάλληλα δεδομένα σε περίπτωση αποτυχίας η διαδικασία δρομολογείται σε έναν γειτονικό κόμβο του εργάτη που απέτυχε  Το πλήθος των εργασιών θα πρέπει να είναι μεγαλύτερο από το πλήθος των κόμβων του συστήματος (task granularity) επιτυγχάνεται καλύτερος καταμερισμός εργασιών (load balancing) αυξάνει την αποδοτικότητα στην αντιμετώπιση σφαλμάτων  Εφεδρικές εργασίες: δρομολόγηση αντιγράφων των τελευταίων map και reduce διαδικασιών και σε άλλους κόμβους

Επεκτάσεις του μοντέλου  Συνάρτηση Συνδυασμού ίδια λειτουργία με την reduce αλλά παράγει ενδιάμεσο αρχείο εκτελείται στο map εργάτη  Αντιμετώπιση εσφαλμένων εγγραφών επιπλέον κώδικας χειρισμού σφαλμάτων παράλειψη των εσφαλμένων εγγραφών  Ενημέρωση κατάστασης συστήματος εξέλιξη υπολογιστικής διαδικασίας αριθμός ολοκληρωμένων εργασιών πλήθος αποτυχημένων κόμβων

Πειραματικά Αποτελέσματα

Πλεονεκτήματα 1.Το μοντέλο είναι εφαρμόσιμο για ένα μεγάλο αριθμό διαφορετικών τύπων δεδομένων 2.Χαρακτηριστικό του συστήματος είναι η κλιμακωσιμότητα (scalability) 3.Αποκρύπτει από το χρήστη τις λεπτομέρειες της παραλληλίας 4.Είναι ανεκτικό στα σφάλματα (fault tolerance) και η αντιμετώπισή τους είναι εύκολη λόγω της ανεξαρτησίας των εργασιών 5.Κάθε κόμβος αποθηκεύει τοπικά τα δεδομένα κάτι το οποίο αποφορτίζει το δίκτυο

Μειονεκτήματα 1.Η επιλογή του συστήματος να παραλείπει εγγραφές που δημιουργούν πρόβλημα μπορεί για μικρό σύνολο δεδομένων να οδηγήσει σε λάθος αποτελέσματα 2.Το προγραμματιστικό μοντέλο είναι πολύ περιοριστικό για τον χρήστη 3.Το γεγονός ότι στο σύστημα υπάρχει ένας master επηρεάζει την κλιμακωσιμότητά του 4.Μη βέλτιστος καθορισμός των παραμέτρων του συστήματος (πλήθος κόμβων, μέγεθος μνήμης, )

Προτεινόμενες επεκτάσεις  Εκμετάλλευση ύπαρξης πολλών επεξεργαστών στους κόμβους μεγαλύτερη υπολογιστική ισχύς πλήρης εκμετάλλευση των πόρων του συστήματος λιγότερες αποφάσεις δρομολόγησης  Ύπαρξη περισσοτέρων master κόμβων “γειτονιές κόμβων” ένας master κόμβος ανά γειτονιά

Hadoop MapReduce  Είναι μία υλοποίηση του MapReduce μοντέλου σε Java διεπαφή προς τον προγραμματιστή που αποτελείται από μία σειρά βιβλιοθηκών  Το Hadoop διαθέτει δικό του κατανεμημένο σύστημα αρχείων το HDFS, το οποίο είναι ανεκτικό στα σφάλματα και σχεδιασμένο για χρήση από εμπορικά μηχανήματα  Είναι συμβατό με πολλές πλατφόρμες (Linux, Windows)

Hadoop MapReduce (συνέχεια)  Εγκαταστήσαμε το Hadoop version σε μηχάνημα με λειτουργικό σύστημα Ubuntu Linux 9.10 και Java χρησιμοποιήσαμε έναν κόμβο  Το παράδειγμα που χρησιμοποιήσαμε μετράει τον αριθμό των εμφανίσεων κάθε λέξης σε μία συλλογή κειμένων το πρόγραμμα περιλαμβάνει μία συνάρτηση map και μία συνάρτηση reduce το πρόγραμμα δέχεται ως είσοδο τη συλλογή εγγράφων το πρόγραμμα παράγει ως έξοδο ζευγάρια της μορφής:

Κώδικας WordCount.java package org.myorg; import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.conf.*; import org.apache.hadoop.io.*; import org.apache.hadoop.mapred.*; import org.apache.hadoop.util.*; public class WordCount { public static class Map { public void map(key, value) {} } public static class Reduce { public void reduce(key, values) {} } public static void main(String[] args) {} }

Κώδικας WordCount.java (συνέχεια) public void map(key, value) { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); output.collect(word, one); } public void reduce(key, values) { int sum = 0; while (values.hasNext()) { sum += values.next().get(); } output.collect(key, new IntWritable(sum)); }

Αποτελέσματα Εκτέλεσης  Συνήθως το πλήθος των εργατών map (Μ) εξαρτάται από το μέγεθος της εισόδου το Hadoop στη δική μας εκτέλεση επέλεξε το 3  Το πλήθος των εργατών reduce (R) εξαρτάται από το πλήθος των κόμβων του συστήματος το Hadoop στη δική μας εκτέλεση επέλεξε το 1, καθώς το σύστημά μας αποτελείται από έναν μόνο κόμβο

Αποτελέσματα Εκτέλεσης (συνέχεια)  Από τη στιγμή που έχουμε στο σύστημά μας έναν reduce εργάτη, παρήχθει ένα αρχείο εξόδου (part ) και κάποιες ενδεικτικές εγγραφές του αρχείου είναι: "(Lo)cra" 1 " "1498," 1 "35" 1 "40," 1 "A 2 "AS-IS". 2 "A_ 1 "Absoluti 1 "Alack! 1

Ερώτηση Για ποιο λόγο σε περίπτωση αποτυχίας ενός εργάτη που έχει ολοκληρώσει μία map διαδικασία, η συγκεκριμένη εργασία επαναδρομολογείται; Και γιατί δε συμβαίνει αυτό στην περίπτωση που ο εργάτης έχει ολοκληρώσει μία reduce διαδικασία;