Efficient Processing of k Nearest Neighbor Joins using MapReduce

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Bayes Classifiers.
Advertisements

Τι είναι ο προγραμματισμός
Indexing.
Nikos Louloudakis Nikos Orfanoudakis Irini Genitsaridi
A Scalable Content- Addressable Network Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, Scott Shenker Proceedings of ACM SIGCOMM ’01 Sections.
Chord: A scalable Peer-to-Peer Lookup Service for Internet Applications Παρουσίαση: Αθανασόπουλος, Αλεξάκης, Δεβελέγκα, Πεχλιβάνη, Φωτιάδου, Φωτόπουλος.
Αλγόριθμοι Αναζήτησης
A Peer-to-peer Framework for Caching Range Queries O. D. Sahin A. Gupta D. Agrawal A. El Abbadi Παρουσίαση: Καραγιάννης Τάσος, Κρεμμυδάς Νίκος, Μαργαρίτη.
Εξόρυξη Γνώσης Από Χρονικά Δεδομένα
Τεχνολογία ΛογισμικούSlide 1 Τυπική Εξειδίκευση u Τεχνικές για σαφή εξειδίκευση λογισμικού.
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Διάλεξη 16: Πρόβλημα Συμφωνίας ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Επεξεργασία ερωτήσεων Πάνος Βασιλειάδης Ιανουάριος 2008
Εξόρυξη Γνώσης Από Χωρικά Δεδομένα Φροντιστήριο Αγγελική Σκούρα
Πανεπιστήμιο Ιωαννίνων Ανάκτηση Πληροφορίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος MapReduce: Simplified Data processing on Large Clusters Φώτης.
Αγγελική Σκούρα Εξόρυξη Γνώσης Από Χωρικά Δεδομένα Φροντιστήριο Αγγελική Σκούρα
Λανθάνουσα Σημασιολογική Ανάλυση (Latent Semantic Analysis)
Εξόρυξη Γνώσης Από Χωρικά Δεδομένα
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Λειτουργικά συστήματα ΙΙ
Αναγνώριση Προτύπων.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Pipelining –
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Προσεγγιστικοί Αλγόριθμοι για NP-Δύσκολα Προβλήματα
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
An Implementation and Evaluation of WiFi Positioning Algorithms in Android Πανεπιστήμιο Κύπρου 2011 Προγραμματισμός Συστημάτων ΕΠΛ371 Γιώργος Κωνσταντίνου.
Εξόρυξη Δεδομένων και Αλγόριθμοι Μάθησης. K-means k-windows k-means: 2 φάσεις 1. Μια διαμέριση των στοιχείων σε k clusters 2. Η ποιότητα της διαμέρισης.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
Μοντέλα - Αλγόριθμοι – Ταξινόμηση Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός – Hashing (1 ο Μέρος)
Ανασκόπηση Σχεδιασμού στο CAN Διονύσης Αθανασόπουλος Βασιλική Δεβελέγκα.
Searching Game Trees. The top-level statement play(Game) :- initialize(Game,Position,Player), display_game(Position,Player), play(Position,Player,Result).
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
A Scalable Content-Addressable Network Μυρτώ Ντέτσικα Παναγιώτα Νικολαΐδου Ελένη Γεώργα Λαμπρινή Κώνστα Βαγγέλης Λάππας Γρηγόρης Τζώρτζης Γιώργος Καρπάθιος.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΔιαΙρεςη και κυριαρχια
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
WEIGHTED CLUSTERING ΠΡΟΗΓΜΕΝΗ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Μιχάλης Χριστόπουλος Μ Proceedings of the Twenty-Sixth AAAI Conference on Artificial Intelligence.
Olympia Nikou1 Τίτλος Παρουσίασης: Προσεγγιστικός Υπολογισμός των λύσεων ενός προβλήματος με: Δειγματοληψία στον χώρο αναζήτησης των λύσεων.
Data Mining software Weka. Εισαγωγή Weka: Wekato Environment for knowledge Analysis Η weka είναι ένα software για εξόρυξη δεδομένων γραμμένο σε JAVA το.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Διάλεξη 14: Εισαγωγή στη ροή ρευστών
Αριθμητική Επίλυση Διαφορικών Εξισώσεων 1. Συνήθης Δ.Ε. 1 ανεξάρτητη μεταβλητή x 1 εξαρτημένη μεταβλητή y Καθώς και παράγωγοι της y μέχρι n τάξης, στη.
Introduction to Latent Variable Models. A comparison of models X1X1 X2X2 X3X3 Y1Y1 δ1δ1 δ2δ2 δ3δ3 Model AModel B ξ1ξ1 X1X1 X2X2 X3X3 δ1δ1 δ2δ2 δ3δ3.
Μέτρα Διασποράς Η μεταβλητότητα, ή αλλιώς η ποικιλομορφία, στις τιμές μιας μεταβλητής θα πρέπει πάντοτε να λαμβάνεται υπόψη σε οποιαδήποτε στατιστική ανάλυση!
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Relations Chapter 9.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΟΜΑΔΕΣ Δημιουργία Ομάδων
Matrix Analytic Techniques
Βελτιστοποίηση σε τρίλιζα Καταδίωξη/διαφυγή
Αν. Καθηγητής Γεώργιος Ευθύμογλου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
DREMEL: Interactive Analysis of Web-Scale Datasets
Activity Diagrams.
Β. Μάγκλαρης 2/11/2015 ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman)
Μεταπτυχιακή Διπλωματική Εργασία του Ταλαγκόζη Χρήστου
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Ερωτήματα Επιλογής σε ACCESS
Find: φ σ3 = 400 [lb/ft2] CD test Δσ = 1,000 [lb/ft2] Sand 34˚ 36˚ 38˚
Μη Γραμμικός Προγραμματισμός
Ερωτήματα Επιλογής σε ACCESS
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων
Find: angle of failure, α
Find: Force on culvert in [lb/ft]
CPSC-608 Database Systems
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Μεταγράφημα παρουσίασης:

Efficient Processing of k Nearest Neighbor Joins using MapReduce Aristotle University of Thessaloniki Computer Science Department MSc. Advanced Data Indexing John Koumarelas, koumarel@csd.auth.gr

Περιεχόμενα Εισαγωγή Προαπαιτούμενα Επισκόπηση του KNN join με MapReduce Διαχείριση του KNN join με MapReduce Ελαχιστοποίηση αντιγράφων του S Πειραματικά αποτελέσματα

Εισαγωγή [1/5] Σύνολα δεδομένων R και S Εύρεση kNN από το σύνολο S ∀ στοιχείο r του R Συνδυασμός kNN query & join operation Μεγάλος όγκος δεδομένων Κεντρικοποιημένες μέθοδοι, μη αποδοτικές Συνοπτικά Mappers: ομαδοποιούν τα στοιχεία σε ομάδες (partitions) Reducers: πραγματοποιούν join σε κάθε ομάδα στοιχείων ξεχωριστά

Εισαγωγή [2/5] Μεταφορά των δεδομένων ακριβή Ανάγκη για pruning rules Eλαχιστοποίηση του αριθμού των αντιγράφων (από το σύνολο S) Ελαττώνουν τόσο το κόστος της μεταφοράς όσο και των υπολογισμών Ο αλγόριθμος συνολικά βρίσκει exact λύσεις όχι προσεγγιστικές.

Εισαγωγή [3/5] Χρησιμότητα σε Data mining & Analytic applications: π.χ. K-means, k-medoids clustering & outlier detection Μεγάλο το κόστος Naive μέθοδος ∀ στοιχείο του R διαβάζουμε όλα τα στοιχεία του S και κρατάμε τις κοντινότερες k αποστάσεις  O(|R| * |S|) Οι προηγούμενες ερευνητικές δουλειές εστιασμένες σε: Σχεδιασμό τεχνικών ευρετηρίασης για αποφυγή ανάγνωσης όλου του dataset και pruning υπολογισμών απόστασης Κυρίως σε κεντρικοποιημένη λογική  Το σύστημα κάποτε θα καταρρεύσει με την συνεχόμενη αύξηση του όγκου των δεδομένων (ειδικά με δεδομένα πολλών διαστάσεων) Κόστος υπολογισμού αποστάσεων & κατάρα της διαστασιμότητας  μείωση της ικανότητας pruning των indexes

Εισαγωγή [4/5] MapReduce Χρησιμοποιείται τόσο στη βιομηχανία όσο και στην έρευνα Simple, flexible, fault tolerant and scalable Τρέχουσες τεχνικές δυστυχώς δεν μπορούν να εφαρμοστούν στο MapReduce εύκολα B+-tree & R-tree, δύσκολη προσαρμογή σε αυτό το παράλληλο και κατανεμημένο περιβάλλον

Εισαγωγή [5/5] Γενική ιδέα Σπάμε το σύνολο R σε κομμάτια Ri και αντιστοιχίζουμε τα στοιχεία του R σε αυτά τα κομμάτια (κάθε κομμάτι: 1 pivot στοιχείο) ∀ Ri σχηματίζουμε ένα σύνολο Si, με το οποίο θα κάνουμε join Το σύνολο Si πρέπει να περιέχει τους γείτονες όλων των στοιχείων του Ri οπότε οδηγούμαστε σε replicated data το οποίο αυξάνει το κόστος

Προαπαιτούμενα - kNN join Απόσταση: Ευκλείδια L2 n-dimensional metric space D Definition 2 kNN join

Προαπαιτούμενα – MapReduce Framework Key-value pairs Map: Input: key-value pair Output: intermediate key-value pairs Reduce: Input: key-[values] Output: key-value  result Hadoop & HDFS (Yahoo!  Apache Software Foundation) Namenode  Datanode Jobtracker  Tasktracker

Προαπαιτούμενα – Voronoi Diagram based Partitioning [1/3] Δοθέντος ενός dataset O Επιλογή M στοιχείων (τα οποία μπορεί να μην ανήκουν στο O) ως στοιχεία pivots Χωρισμός των στοιχείων του O σε M κομμάτια, όπου κάθε στοιχείο ανατίθεται στο κοντινότερό του pivot PiO: σύνολο στοιχείων από το O που βρίσκονται πιο κοντά στο pivot pi

Προαπαιτούμενα – Voronoi Diagram based Partitioning [2/3] U(PiO): max distance from pivot pi to the objects of PiO L(PiO): min distance from pivot pi to the objects of PiO Definition 3 Range Selection Dataset O, object q, distance threshold θ Find all objects (Ō) of O, such that ∀o ∈ Ō, |q, o| ≤ θ Theorem 1 d(o,HP(pi,pj))

Προαπαιτούμενα – Voronoi Diagram based Partitioning [3/3] Corollary 1 [pruning] Give a partition PiO and PiO≠ PqO, if we can derivce d(q,HP(pq,pi)) > θ, then ∀ o ϵ PiO, |q,o| > θ. Theorem 2 [pruning] Given a partition PiO, ∀ o ϵ PiO, the necessary condition that |q,o| ≤ θ is:

Επισκόπιση του KNN join με MapReduce [1/2] Βασική στρατηγική Το R χωρίζεται σε ξεχωριστά υποσύνολα, π.χ., R = 1≤𝑖≤𝑁 Ri , όπου Ri Rj = 0, i ≠ j. Κάθε υποσύνολο Ri διανέμεται σε έναν reducer. Χωρίς κανέναν κανόνα pruning, όλο το σύνολο S πρέπει να σταλθεί σε κάθε reducer για να ενωθεί με το Ri. Μεγάλο κόστος για shuffle και του υπολογισμού των αποστάσεων στους reducers. 1 φάση MapReduce. Κόστος: H-BRJ εναλλακτικό πλαίσιο Χωρισμός R και S σε 𝑁 χωριστά υποσύνολα. Έτσι Χρειάζεται άλλη μια φάση για ένωση αποτελεσμάτων Κόστος: 1η + 2η

Επισκόπιση του KNN join με MapReduce [2/2] Μια καλύτερη στρατηγική για την μείωση του κόστους R χωρισμός σε N χωριστά υποσύνολα Για κάθε υποσύνολο Ri, εύρεση ενός υποσυνόλου Si ώστε να ισχύει: και Στέλνουμε μόνο το υποσύνολο Si στο Ri. Για να εγγυηθούμε την ορθότητα, θα πρέπει το Si να περιέχει τους kNN για όλα τα r ∈ Ri, KNN(r,S) ⊆ Si. Si ∩ Sj μπορεί να μην είναι κενό σύνολο… Κάποια s πρέπει να είναι replicated Shuffling cost: |R| + a*|S| a: average number of replicas of an object in S Μείωση του a  μείωση κόστους: shuffling + υπολογισμού αποστάσεων Συνοπτικά Εύρεση καλού διαχωρισμού του R Εύρεση του ελαχίστου υποσυνόλου Si για κάθε Ri ∈ R

Διαχείριση του KNN join με MapReduce (όχι MR φάση – στο masternode) Προεπεξεργασία των δεδομένων, για εύρεση pivots (1η φάση MR) Εύρεση κοντινότερου pivot για κάθε στοιχείο σε R ∪ S και αποθήκευση απόστασης στοιχείου με pivot. Αποτέλεσμα του map phase, ένας διαχωρισμός στο R (~ και στο S) με βάση ένα διάγραμμα Voronoi από τα pivots. & αποθήκευση στατιστικών για κάθε Ri (από τους reducers). (2η φάση MR) Δοθέντων των Ri εύρεση των Si, βασισμένοι στα στατιστικά της 1ης φάσης. Οι reducers πραγματοποιούν το kNN join μεταξύ των Ri και Si.

Διαχείριση του KNN join με MapReduce – Data preprocessing Εύρεση pivots Random Selection T τυχαία υποσύνολα στοιχείων Για κάθε υποσύνολο υπολογισμός sum αποστάσεων μεταξύ όλων των στοιχείων Υποσύνολο με το μεγαλύτερο sum αποστάσεων, επιλογή των στοιχείων για pivots Farthest Selection Επαναληπτικά Επιλογή sample από το R (μιας και το R μπορεί να είναι πολύ μεγάλο για να χωράει στη RAM master node) Επιλογή τυχαίου 1ου στοιχείου ως pivot Επιλογή του στοιχείου που απέχει περισσότερο από το 1ο pivot. Στην i-οστή επανάληψη θέλουμε το στοιχείο που μεγιστοποιεί το άθροισμα των αποστάσεων από όλα τα i-1 έπιλεγμένα pivots K-means Selection Εφαρμόζουμε τον κλασικό αλγόριθμο k-means Τα κέντρα των clusters που παράγονται αποτελούν τα pivots

Διαχείριση του KNN join με MapReduce

Διαχείριση του KNN join με MapReduce – 1η φάση MR Φόρτωση των pivots στη RAM (των mappers) // setup() in hadoop  Για κάθε στοιχείο o από το input, υπολογισμός αποστάσεων με όλα τα στοιχεία pivot pi ∈ P και συσχετισμός στοιχείου με αυτό το κοντινότερο pivot Κρατούνται στατιστικά summary table TR και TS Με αυτά υπολογίζονται distance bounds και γίνεται το pruning

Διαχείριση του KNN join με MapReduce – 2η φάση MR [1/3] Στόχος των mappers είναι να βρούνε τα Si που αντιστοιχούνε σε κάθε Ri Ανάγκη για καθορισμό thresholds με βάση τα οποία θα γίνεται pruning Απόσταση k-οστού γείτονα

Διαχείριση του KNN join με MapReduce – 2η φάση MR [2/3]

Διαχείριση του KNN join με MapReduce – 2η φάση MR [3/3]

Ελαχιστοποίηση αντιγράφων του S [1/3] Απαιτείται η μεγιστοποίηση του LB(PjS, PiR) και η ελαχιστοποίηση του |s, pj|. Αυτό επιτυγχάνεται με την αύξηση των partitions (pivots) Με αυτό τον τρόπο όμως δυσκολεύει ο τρόπος χειρισμού των partitions… Εισαγωγή των groups (ομαδοποίηση των partitions σε groups) Cost Model

Ελαχιστοποίηση αντιγράφων του S [2/3] Grouping Strategies Geometric Grouping Βασίζεται στην λογική ότι μακρινά partitions έχουν λίγες πιθανότητες να έχουν τους ίδιους kNN  ομαδοποιεί κοντινά partitions

Ελαχιστοποίηση αντιγράφων του S [3/3] Greedy grouping RP(S,Gi) στοιχεία του Si Στόχος η ελαχιστοποίηση του: Σύμφωνα με το θεώρημα 6 Ωστόσο είναι αρκετά ακριβό να υπολογίσουμε το πιο partition ελαχιστοποιεί την παραπάνω ποσότητα…Γιατί χρειάζεται να υπολογίσουμε τον αριθμό των νέων στοιχείων από το S που πρέπει να προστεθούν στο Si Έτσι: αν Βάζουμε όλα τα στοιχεία του Οπότε:

Πειραματικά αποτελέσματα [1/7] Approaches H-BRJ: R-tree PGBJ: partitioning & grouping PBJ: partitioning Datasets Forest FCoverType (Forest) This is a real dataset that predicts forest cover type from cartographic variables. There are 580K objects, each with 54 attributes (10 integer,44 binary). We use 10 integer attributes in the experiments. Expanded Forest FCoverType Παραγωγή νέων (συνθετικών) αποτελεσμάτων για να μεγαλώσει το μέγεθος του συνόλου δεδομένων we first compute the frequencies of values in each dimension, and sort values in the ascending order of their frequencies for each object o in the original dataset, we create a new object ō, where in each dimension Di , ō[i] is ranked next to o[i] in the sorted list OpenStreetMap (OSM) this is a real map dataset containing the location and description of objects. We extract 10 million records from this dataset, where each record consists of 2 real values (longitude and latitude) and a description with variable length.

Πειραματικά αποτελέσματα [2/7] Μετρική: Distance computation selectivity (computation selectivity) pivot grouping RGE: random selection + geometric grouping FGE: farthest selection + geometric grouping KGE: k-means selection + geometric grouping RGR: random selection + greedy grouping FGR: farthest selection + greedy grouping KGR: k-means selection + greedy grouping

Πειραματικά αποτελέσματα [3/7] Farthest selection: outliers are always selected as pivots πχ. Με 2000 pivots το μέγιστο μέγεθος partition είναι 1.130.768, που είναι το 1/5 του συνολικού μεγέθους του dataset. Οπότε με πιο πολλά partitions & pivots το πρόβλημα αντιμετωπίζεται… Ωστόσο τα πολλά pivots σημαίνουν και ότι θα πρέπει να γίνουν πολλοί υπολογισμοί μεταξύ r και pivots, οπότε πρέπει να βρεθεί μια χρυσή τομή… FGE & FGR δεν έχουμε χρόνους γιατί λόγω της παρατήρησης αυτής οι εκτελέσεις αργούσανε πάρα πολύ

Πειραματικά αποτελέσματα [4/7]

Πειραματικά αποτελέσματα [5/7]

Πειραματικά αποτελέσματα [6/7]

Πειραματικά αποτελέσματα [7/7]

Ευχαριστώ για την προσοχή σας! 