320 likes | 514 Views
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
E N D
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 2kNN 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 3Range 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 = , όπου Ri = 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. • SiSjμπορεί να μην είναι κενό σύνολο… Κάποια 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 μπορεί να είναι πολύ μεγάλο για να χωράει στη RAMmaster node) • Επιλογή τυχαίου 1ου στοιχείου ως pivot • Επιλογή του στοιχείου που απέχει περισσότερο από το 1οpivot. • Στην i-οστή επανάληψη θέλουμε το στοιχείο που μεγιστοποιεί το άθροισμα των αποστάσεων από όλα τα i-1 έπιλεγμέναpivots • K-means Selection • Εφαρμόζουμε τον κλασικό αλγόριθμο k-means • Τα κέντρα των clusters που παράγονται αποτελούν τα pivots
Διαχείριση του 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 frequenciesof values in each dimension, and sort values in the ascendingorder of their frequencies • for each object o in the originaldataset, we create a new object ō, where in each dimensionDi , ō[i] is ranked next to o[i] in the sorted list • OpenStreetMap(OSM) • this is a real map datasetcontaining the location and description of objects. We extract 10 million records from this dataset, where each recordconsists 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 δεν έχουμε χρόνους γιατί λόγω της παρατήρησης αυτής οι εκτελέσεις αργούσανε πάρα πολύ