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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Κεφάλαιο 4: Λογισμικό Συστήματος

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

EPL 660: Lab 4 Introduction to Hadoop

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

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

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

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

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

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

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

25SMEs2009 ΠΑΡΑΔΟΤΕΑ ΕΝΟΤΗΤΑΣ ΕΡΓΑΣΙΩΝ 5: ΟΛΟΚΛΗΡΩΣΗ ΣΥΣΤΗΜΑΤΟΣ. 5.1 Ολοκλήρωση Υποσυστημάτων Πλατφόρμας Διαχείρισης Αισθητήρων

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

Λιβανός Γιώργος Εξάμηνο 2017Β

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ

RobotArmy Περίληψη έργου

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

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

Διερεύνηση χαρτογράφησης Ποσειδωνίας με χρήση επιβλεπόμενης ταξινόμησης οπτικών δορυφορικών εικόνων

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Approximation of distance between locations on earth given by latitude and longitude

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πτυχιακή διατριβή. Η επίδραση της τασιενεργής ουσίας Ακεταλδεΰδης στη δημιουργία πυρήνων συμπύκνωσης νεφών (CCN) στην ατμόσφαιρα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Διαχείριση Έργων Πληροφορικής Εργαστήριο

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

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

Πίνακας περιεχοµένων

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker»

Υπολογιστική Νέφους: Εργαστήριο 1

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Σχεδιασµός βασισµένος σε συνιστώσες

ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

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

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

Standard Template Library (STL) C++ library

Ανάκτηση πληροφορίας

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

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

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

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 9: Πληροφοριακά Συστήματα Ορισμοί

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

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

«Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής»

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

The challenges of non-stable predicates

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Εισαγωγή στη Σχεδίαση Λογισμικού

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

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

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6.

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

Κεφάλαιο 1ο Πολυπρογραμματισμός Πολυδιεργασία Κατηγορίες Λειτουργικών Συστημάτων

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

first block of queries p-th block of queries p

Ανάκτηση Πληροφορίας σε Νέφη Υπολογιστών

WIRELESS SENSOR NETWORKS (WSN)

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

Η θέση ύπνου του βρέφους και η σχέση της με το Σύνδρομο του αιφνίδιου βρεφικού θανάτου. ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ

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

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Μετρήσεις ηλιοφάνειας στην Κύπρο

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Λειτουργικά Συστήματα Η/Υ

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

Transcript:

Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α «ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ ΗADOOP» Trajectories Management of Moving Objects in Hadoop «ΣΑΝΙΔΑ ΣΤΑΥΡΟΥΛΑ» ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Παπαδόπουλος Απόστολος, Επίκουρος Καθηγητής ΘΕΣΣΑΛΟΝΙΚΗ 2014

Η μεταπτυχιακή αυτή εργασία πραγματοποιήθηκε στο Τμήμα Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης, στα πλαίσια του μεταπτυχιακού προγράμματος «Π.Μ.Σ Πρόγραμμα Μεταπτυχιακών Σπουδών στην Πληροφορική» και κατατέθηκε τον Φεβρουάριο του 2014. Επιβλέπων καθηγητής ήταν ο κ. Παπαδόπουλος Απόστολος

ΠΕΡΙΛΗΨΗ Π Ε Ρ Ι Λ Η Ψ Η Μια από τις σημαντικότερες προκλήσεις στην αποδοτική διαχείριση δεδομένων είναι η αποθήκευση, η επερώτηση και η ανάλυση μεγάλων όγκων δεδομένων. Λαμβάνοντας υπόψη ότι η θέση και ο χρόνος είναι σημαντικά χαρακτηριστικά τα οποία συχνά συνοδεύουν τα αντικείμενα, στην εργασία αυτή, μελετάμε τη διαχείριση μεγάλων συνόλων δεδομένων τροχιών (massive trajectory datasets) με βάση το προγραμματιστικό μοντέλο MapReduce. Συγκεκριμένα, μελετάμε την λειτουργία της «ένωσης-join» μεταξύ ενός ενδεχομένως μεγάλου συνόλου δεδομένων το οποίο αποτελείται από περιοχές ενδιαφέροντος (regions of interest) και ενός ογκώδους συνόλου δεδομένων τροχιών το οποίο αναπαριστά την κίνηση ενός συνόλου κινούμενων αντικειμένων. Η έξοδος της λειτουργίας της «ένωσης-join» είναι ένα σύνολο εγγραφών οι οποίες αναπαριστούν την τομή μεταξύ τμημάτων των τροχιών (segments) και χωρικών περιοχών (spatial region) μαζί με τα αντίστοιχα χρονικά στιγμιότυπα (time instances). Το αποτέλεσμα αυτό παρουσιάζει ιδιαίτερο ενδιαφέρον για διάφορες εφαρμογές όπως, η συμπλήρωση των τροχιών με σημασιολογικό περιεχόμενο, ο χαρακτηρισμός των τροχιών χρησιμοποιώντας την πληροφορία που περιέχεται στις περιοχές ενδιαφέροντος ή ακόμη η ανίχνευση τροχιών οι οποίες παραβιάζουν απαγορευμένες ζώνες/περιοχές. Τέτοιου είδους έξοδος μπορεί επίσης να χρησιμοποιηθεί για να υποστηρίξει άλλες λειτουργίες. ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ τροχιές, χωροχρονικά δεδομένα, κινούμενα αντικείμενα, λειτουργία join, MapReduce, Hadoop ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE V

ABSTRACT A B S T R A C T One of the most important challenges for efficient data management is the storage, querying and analysis of massive datasets. Taking into account that location and time are important attributes that frequently accompany objects, in this work, we study the management of massive trajectory datasets based on the MapReduce programming paradigm. In particular, we explore the join operation between a potentially large set containing regions of interest and a massive set of trajectories representing the motion of a set of moving objects. The output of this join operation is a set of records representing the intersection between trajectory segments and spatial regions along with the corresponding time instances. This is an interesting result in order to complement trajectories with semantic content, to annotate trajectories using information contained in regions of interest, or to detect trajectories violating restricted areas, just to name a few applications. This kind of output can be used to support other operations as well. KEYWORDS trajectories, spatiotemporal data, moving objects, join processing, MapReduce, Hadoop ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE VΙΙ

ΕΥΧΑΡΙΣΤΙΕΣ Ε Υ Χ Α Ρ Ι Σ Τ Ι Ε Σ Η παρούσα διπλωματική εργασία πραγματοποιήθηκε στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, στο τμήμα Πληροφορικής, στα πλαίσια του μεταπτυχιακού προγράμματος σπουδών με τίτλο «ΠΜΣ - Πρόγραμμα Μεταπτυχιακών Σπουδών στην Πληροφορική», κατά το έτος 2014. Η ολοκλήρωση της μεταπτυχιακής αυτής εργασίας θα ήταν αδύνατη χωρίς την πολύτιμη υποστήριξη του καθηγητή μου, Επίκουρου Καθηγητή του Τμήματος Πληροφορικής του ΑΠΘ, κ. Παπαδόπουλου Απόστολου. Του εκφράζω ένα βαθύ ευχαριστώ για όλη την βοήθεια και την υποστήριξη που μου προσέφερε, καθ όλη τη διάρκεια εκπόνησης αυτής της εργασίας. Τέλος, θα ήθελα να ευχαριστήσω πολύ την οικογένειά μου για την αμέριστη συμπαράστασή τους. Αποτέλεσαν ένα ανεκτίμητο στήριγμα για μένα και σε αυτούς οφείλω όλη την πορεία των σπουδών μου, μέχρι σήμερα. <Φεβρουάριος 2014> Σανιδά Σταυρούλα ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE ΙΧ

ΠΕΡΙΕΧΟΜΕΝΑ Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΕΡΙΛΗΨΗ... V EXECUTIVE SUMMARY... VII ΕΥΧΑΡΙΣΤΙΕΣ... IX ΠΕΡΙΕΧΟΜΕΝΑ... XI ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ... XIV ΛΙΣΤΑ ΠΙΝΑΚΩΝ... XV ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ... 16 ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE... 21 2.1 ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ... 22 2.2 ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΜΟΝΤΕΛΟΥ... 27 2.3 ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ... 32 ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN... 35 3.1 Η ΕΝΝΟΙΑ ΤΗΣ ΤΡΟΧΙΑΣ... 36 3.2 ΕΙΣΑΓΩΓΗ ΣΤΟ SPATIOTEMPORAL JOIN... 38 3.2.1 ΟΡΙΣΜΟΣ ΠΡΟΒΛΗΜΑΤΟΣ... 38 3.2.2 ΠΡΟΣΕΓΓΙΣΗ ΕΠΙΛΥΣΗΣ... 41 3.3 ΑΛΓΟΡΙΘΜΟΙ SPATIOTEMPORAL JOIN... 42 3.3.1 ΑΛΓΟΡΙΘΜΟΣ UPA... 43 3.3.2 ΑΛΓΟΡΙΘΜΟΣ SPA... 45 3.3.2.1 Παραλλαγή SPA-PS... 45 3.3.2.1 Παραλλαγή SPA-SS... 48 3.3.3 ΣΥΝΟΨΗ ΑΛΓΟΡΙΘΜΩΝ... 50 ΚΕΦΑΛΑΙΟ 4: ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ... 51 4.1 CLUSTER ΚΑΙ ΔΕΔΟΜΕΝΑ... 52 4.2 ΜΕΛΕΤΗ ΕΞΙΣΟΡΡΟΠΗΣΗΣ ΦΟΡΤΟΥ... 54 4.3 ΜΕΛΕΤΗ ΑΠΟΔΟΣΗΣ... 55 ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE XI

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 5: ΒΕΛΤΙΩΣΕΙΣ... 59 5.1 ΚΙΝΗΤΡΟ... 60 5.2 ΒΕΛΤΙΩΣΗ JOIN... 61 ΚΕΦΑΛΑΙΟ 6: ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ... 66 ΠΑΡΑΡΤΗΜΑ I: ΑΝΑΦΟΡΕΣ... 69 ΠΑΡΑΡΤΗΜΑ IΙ: ΑΚΡΩΝΥΜΑ... 74 ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE ΧΙΙ

ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ Λ Ι Σ Τ Α Σ Χ Η Μ ΑΤ Ω Ν ΕΙΚΟΝΑ 1.1: ΔΙΚΤΥΟ GPS... 19 ΕΙΚΟΝΑ 2.1: ΥΠΟΒΟΛΗ ΕΡΓΑΣΙΑΣ ΣΕ HADOOP CLUSTER... 23 ΕΙΚΟΝΑ 2.2: ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ HADOOP... 24 ΕΙΚΟΝΑ 2.3: HIGH LEVEL ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ HADOOP... 25 ΕΙΚΟΝΑ 2.4: ΛΟΓΙΚΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ HDFS... 26 EIΚΟΝΑ 2.5: ΛΟΓΙΚΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ MAPREDUCE... 27 ΕΙΚΟΝΑ 2.6: ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΤΩΝ ΣΥΝΑΡΤΗΣΕΩΝ MAP/REDUCE... 28 ΕΙΚΟΝΑ 2.7: ΛΟΓΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ MAP... 29 ΕΙΚΟΝΑ 2.8: ΛΟΓΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ REDUCE... 29 ΕΙΚΟΝΑ 2.9: ΥΠΟΒΟΛΗ ΕΡΓΑΣΙΑΣ ΣΤΟ MAPREDUCE... 30 ΕΙΚΟΝΑ 2.10: ΡΟΗ ΔΕΔΟΜΕΝΩΝ ΣΤΟ MAPREDUCE... 31 EIΚΟΝΑ 2.11: ΕΚΤΕΛΕΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ WORDCOUNT ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE... 33 ΕΙΚΟΝΑ 2.12: WORD_CΣOUNT.JAVA... 34 ΕΙΚΟΝΑ 3.1: RAW TRAJECTORY... 36 ΕΙΚΟΝΑ 3.2: STRUCTURED TRAJECTORY... 37 ΕΙΚΟΝΑ 3.3: SEMANTIC TRAJECTORY... 37 ΕΙΚΟΝΑ 3.4: ΣΤΙΓΜΙΟΤΥΠΟ ΠΡΟΒΛΗΜΑΤΟΣ SPATIAL JOIN... 38 EIΚΟΝΑ 3.5: ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ SPATIAL JOIN... 40 ΕΙΚΟΝΑ 3.6: ΣΥΜΜΕΤΡΙΚΗ VS. K-D TREE ΔΙΑΜΕΡΙΣΗ ΤΟΥ ΧΩΡΟΥ... 42 ΕΙΚΟΝΑ 3.7: ΑΛΓΟΡΙΘΜΟΣ UPA... 43 ΕΙΚΟΝΑ 3.8: ΑΛΓΟΡΙΘΜΟΣ SPA-PS... 47 ΕΙΚΟΝΑ 3.9: ΑΛΓΟΡΙΘΜΟΣ SPA-SS... 49 ΕΙΚΟΝΑ 4.1: ΤΥΠΙΚΗ ΑΠΟΚΛΙΣΗ VS. ΠΛΗΘΟΣ PARTITIONS... 54-55 EIΚΟΝΑ 4.2: ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ VS. ΠΛΗΘΟΣ PARTITIONS... 56 ΕΙΚΟΝΑ 4.3: ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ VS. ΜΕΓΕΘΟΣ ΣΥΝΟΛΟΥ ΔΕΔΟΜΕΝΩΝ... 57 ΕΙΚΟΝΑ 4.4: ΧΡΟΝΟΣ ΕΚΤΕΛΕΣΗΣ VS. ΠΛΗΘΟΣ REDUCE TASKS... 57 ΕΙΚΟΝΑ 4.5: ΤΥΠΙΚΗ ΑΠΟΚΛΙΣΗ VS. ΡΥΘΜΟΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ... 58 ΕΙΚΟΝΑ 5.1: ΠΟΣΟΣΤΟ ΧΡΟΝΟΥ ΕΚΤΕΛΕΣΗΣ ΑΝΑ ΦΑΣΗ MAPREDUCE... 60 ΕΙΚΟΝΑ 5.2: PSSJ VS. SPSSJ... 65 ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE XIV

ΛΙΣΤΑ ΠΙΝΑΚΩΝ Λ Ι Σ Τ Α Π Ι Ν Α Κ Ω Ν ΠΙΝΑΚΑΣ 1.1: ΕΦΑΡΜΟΓΕΣ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΤΗΣ ΤΡΟΧΙΑΣ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ... 18 ΠΙΝΑΚΑΣ 4.1: ΠΑΡΑΜΕΤΡΟΙ ΚΑΙ ΤΙΜΕΣ... 53 ΠΙΝΑΚΑΣ 4.2: ΣΥΝΟΛΑ ΔΕΔΟΜΕΝΩΝ ΤΡΟΧΙΩΝ... 53 ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE XV

ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Κ Ε Φ Α Λ Α Ι Ο 1 : Ε Ι Σ Α Γ Ω Γ Η ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 16

ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ΕΙΣΑΓΩΓΗ Μέσα στο χρόνο, οι άνθρωποι ανέπτυξαν διάφορους τρόπους για τον προσδιορισμό της θέσης τους πάνω στη γη και την πλοήγησή τους από τη μια περιοχή στην άλλη. Οι πρώτοι ναυτικοί βασίζονταν σε παρατήρηση των ουράνιων σωμάτων, όπως ο ήλιος και τα αστέρια, για να υπολογίσουν την θέση τους. Το 1920 μαρτυράται η εμφάνιση μιας πιο εξελιγμένης τεχνικής, της ραδιοπλοήγησης. Η τεχνική αυτή βασιζόταν κατά κύριο λόγο σε ραδιοσυχνότητες, οι οποίες επέτρεπαν στους πλοηγητές να εντοπίζουν την κατεύθυνση της κίνησης των εγκατεστημένων στην ξηρά πομπών όταν αυτοί ήταν εντός εμβέλειας. Αργότερα, η ανάπτυξη των τεχνητών δορυφόρων κατέστησε δυνατή την μετάδοση ακριβέστερων ραδιοσημάτων και άνοιξε το δρόμο σε μια νέα εποχή στην τεχνολογία πλοήγησης. Οι δορυφόροι χρησιμοποιήθηκαν για πρώτη φορά στην εύρεση της θέσης με ένα απλό αλλά αξιόπιστο ναυτικό σύστημα στο δισδιάστατο χώρο, γνωστό με την ονομασία Transit. Το Transit έθεσε τα θεμέλια για ένα σύστημα που αργότερα θα έφερνε την επανάσταση στο χώρο της πλοήγησης, το Παγκόσμιο Σύστημα Θεσιθεσίας (GPS) 1. Η εξέλιξη στον χώρο της πλοήγησης, από την πρώτη εμφάνιση του GPS έως και σήμερα είναι μεγάλη. Τα τελευταία χρόνια, όλο και περισσότερες κινητές συσκευές (mobile devices) εξοπλίζονται με συστήματα παρακολούθησης (tracking systems), τα οποία αναμεταδίδουν πληροφορία σχετικά με την ακριβή θέση (χωρική πληροφορία) των συσκευών, ανά τακτά χρονικά διαστήματα (χρονική πληροφορία). Κινητά τηλέφωνα εξοπλισμένα με GPS, οχήματα με εξοπλισμό πλοήγησης, αλλά και πλήθος συσκευών GPS που χρησιμοποιούνται σε laptops, βραχιόλια, κολιέ ή ακόμα τα λεγόμενα έξυπνα παπούτσια (smart shoes) αποτελούν μερικά μόνο παραδείγματα. Οι αισθητήρες παρακολούθησης παράγουν έναν μεγάλο όγκο δεδομένων τα οποία μπορούν να αποθηκευτούν σε χωροχρονικές βάσεις δεδομένων (spatiotemporal databases) για περαιτέρω επεξεργασία και ανάλυση. Τα ιστορικά αυτά δεδομένα μπορούν να χρησιμοποιηθούν σε διάφορα πεδία εφαρμογών όπως, η μελέτη 1 Το GPS (Global Positioning System), Παγκόσμιο Σύστημα Θεσιθεσίας είναι ένα παγκόσμιο σύστημα εντοπισμού θέσης, το οποίο βασίζεται σε ένα "πλέγμα" εικοσιτεσσάρων δορυφόρων της Γης, στους οποίους υπάρχουν ειδικές συσκευές, οι οποίες ονομάζονται "δέκτες GPS". Οι δέκτες αυτοί παρέχουν ακριβείς πληροφορίες για τη θέση ενός σημείου, το υψόμετρό του, την ταχύτητα και την κατεύθυνση της κίνησης του. Επίσης, σε συνδυασμό με ειδικό λογισμικό χαρτογράφησης μπορούν να απεικονίσουν γραφικά τις πληροφορίες αυτές. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 17

ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ γεωγραφικών φαινομένων, η μετανάστευση ζώων, η παρακολούθηση της κίνησης μιας ομάδας ή/και μεμονομένων ατόμων, η παρακολούθηση της τροχιάς οχημάτων κ.α. Στον Πίνακα 1.1, δίνονται μερικά παραδείγματα οντοτήτων των οποίων η παρακολούθηση της τροχιάς θα μπορούσε να αποδειχθεί χρήσιμη σε πολλές εφαρμογές. Πίνακας 1.1: Εφαρμογές παρακολούθησης της τροχιάς κινούμενων αντικειμένων Moving Points People: Movements of a terrorist/spy/criminal Animals: Determine trajectories of birds, whales, Which distance do they traverse, at which speed? How often do they stop? Where are the whales now? Did their habitats move in the last 20 years? Satellites, spacecraft, planets: Which satellites will get close to the route of this spacecraft within the next 4 hours? Cars: Taxis: Which one is closest to a passenger request position? Trucks: Which routes are used regularly? Did the trucks with dangerous goods come close to a high risk facility? Planes: Were any two planes close to a collision? Are two planes heading towards each other (going to crash)? Did planes cross the air territory of state X? Moving Regions Countries: What was the largest extent ever of the Roman empire? On which occasions did any two states merge? (Reunification, etc.) Which states split into two or more parts? How did the Serb-occupied areas in former Yugoslavia develop over time? When was the maximal extent reached? Forests, Lakes: How fast is the Amazon rain forest shrinking? Is the dead sea shrinking? What is the minimal and maximal extent of river X during the year? Glaciers: Does the polar ice cap grow? Does it move? Where must glacier X have been at time Y (backward projection)? Storms: Where is the tornado heading? When will it reach Florida? Troops, armies: Hannibal going over the alps. Show his trajectory. When did he pass village X? ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 18

ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ At what speed does this plane move? What is its top speed? Did Iraqi planes cross the 39th degree? Ships: Are any ships heading towards shallow areas? Find strange movements of ships indicating illegal dumping of waste. Rockets, missiles, tanks, submarines: All kinds of military analyses Scalar functions over space, e.g. temperature: Where has the 0-degree boundary been last midnight? Continents: History of continental shift Ο όγκος των χωροχρονικών δεδομένων (spatiotemporal data) που συλλέγονται από τις διάφορες συσκευές αυξάνεται εκθετικά, με αποτέλεσμα να προκύπτει πρόβλημα όσον αφορά την αποδοτική διαχείριση τους. Ο πολλαπλασιασμός των κινητών συσκευών σε συνδυασμό με την ικανότητά τους να συλλέγουν και να αποθηκεύουν δεδομένα με υψηλή συχνότητα, έχει ήδη οδηγήσει στην «έκρηξη» των διαθέσιμων χωροχρονικών δεδομένων. Οι τάξεις μεγέθους των δεδομένων αυτών είναι τέτοιες που καθίσταται δύσκολη έως αδύνατη η επεξεργασία και η διαχείρισή τους από τις συμβατικές αρχιτεκτονικές και αλγορίθμους. Οι απαιτήσεις επεξεργασίας και ανάλυσης ξεπερνούν την υπολογιστική χωρητικότητα των παραδοσιακών κεντρικοποιημένων συστημάτων και τεχνολογιών, με αποτέλεσμα να απαιτείται η διαίρεσή τους σε μικρότερα σύνολα και η κατανομή τους μεταξύ χιλιάδων μηχανών, οι οποίες μπορούν να δρούν παράλληλα για την παραγωγή των αποτελεσμάτων μέσα σε αποδεκτά χρονικά πλαίσια. Εικόνα 1.1: Δίκτυο GPS ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 19

ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Η ανάγκη για επεξεργασία πάρα πολύ μεγάλων όγκων δεδομένων ταυτόχρονα, σε κατανεμημένα συστήματα όπου υπάρχουν μαζικές παράλληλες μηχανές και ο τρόπος διαχείρισης των πιθανών σφαλμάτων, απασχόλησε για μεγάλο χρονικό διάστημα τους ερευνητές. Στόχος, ήταν η εύρεση μιας εύκολης λύσης, η οποία θα παρείχε εκτέλεση υψηλού επιπέδου εφαρμογών και αποδέσμευση των προγραμματιστών από πολύπλοκες υλοποιήσεις. Την λύση έδωσε η Google με την δημοσίευση του μοντέλου MapReduce. Το μοντέλο περιγράφεται αναλυτικά στην επόμενη ενότητα. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 20

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Κ Ε Φ Α Λ Α Ι Ο 2 : Τ Ο Μ Ο Ν Τ Ε Λ Ο M APR E D U C E ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 21

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Στο κεφάλαιο αυτό περιγράφεται το προγραμματιστικό μοντέλο MapReduce, το οποίο υποστηρίζει την κατανεμημένη επεξεργασία σε συστοιχίες υπολογιστών (clusters). 2.1 ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ Η σημερινή εποχή χαρακτηρίζεται από κατακλυσμό δεδομένων. Οι άνθρωποι ανεβάζουν βίντεο στο Διαδίκτυο, πραγματοποιούν λήψη εικόνων με το κινητό τους τηλέφωνο, ανταλάσσουν μηνύματα με φίλους, ενημερώνουν την κατάστασή τους στο Facebook, αφήνουν το σχόλιο τους σε σελίδες του ιστού, επιλέγουν την προβολή διαφημίσεων κ.ο.κ. Οι μηχανές, από την άλλη πλευρά παράγουν και αποθηκεύουν όλο και περισσότερα δεδομένα. Η εκθετική αύξηση του όγκου των δεδομένων, αποτέλεσε αρχικά πρόκληση για εταιρείες αιχμής όπως, οι γνωστές σε όλους μας Google [I], Yahoo[II], Amazon[III] και Microsoft[IV]. Οι εταιρείες αυτές χρειάστηκε να επεξεργαστούν terabytes και petabytes δεδομένων ώστε να μπορούν να αποφανθούν για το ποιες ιστοσελίδες είναι οι πιο δημοφιλείς, ποια βιβλία εμφανίζουν μεγαλύτερη ζήτηση, και ποιες διαφημίσεις προσελκύουν το ενδιαφέρον των χρηστών. Τα υπάρχοντα εργαλεία, ωστόσο, αποδείχθηκαν ανεπαρκή για την επεξεργασία αυτού του όγκου δεδομένων. Έτσι, η Google ήταν η πρώτη εταιρεία η οποία δημοσίευσε το MapReduce, ένα σύστημα το οποίο χρησιμοποίησε για την κλιμάκωση των μεγάλων αναγκών της για επεξεργασία δεδομένων. Το σύστημα αυτό συγκέντρωσε το ενδιαφέρον πολλών. Πληθώρα εταιρειών αντιμετώπιζε τις ίδιες προκλήσεις κλιμάκωσης, ωστόσο δεν ήταν εφικτή για αυτές η δημιουργία ενός μοντέλου αντίστοιχου του MapReduce. Την ευκαιρία αυτή εκμεταλλεύτηκε ο Doug Cutting, ο οποίος προχώρησε στην ανάπτυξη μιας έκδοσης ανοιχτού λογισμικού για το MapReduce, η οποία ονομάστηκε Hadoop[VIII]. Το σύστημα αυτό ήταν τόσο αναγκαίο που δέχτηκε σύντομα την υποστήριξη τόσο από την Yahoo όσο και από άλλους. Σήμερα, το Hadoop αποτελεί τον πυρήνα της υπολογιστικής υποδομής διαφόρων εταιρειών όπως οι Yahoo[II], Facebook[V], LinkedIn[VI], και το Twitter[VII]. Επιπλέον, πολλές παραδοσιακές εταιρείες έχουν αρχίσει να υιοθετούν το σύστημα αυτό. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 22

ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Το Hadoop είναι ένα πλαίσιο λειτουργίας ανοιχτού κώδικα κατάλληλο για την συγγραφή και την εκτέλεση κατανεμημένων εφαρμογών σε συστοιχίες υπολογιστών (clusters), οι οποίες επεξεργάζονται πολύ μεγάλο όγκο δεδομένων. Η κατανεμημένη επεξεργασία είναι ένα ευρύ και ποικίλο πεδίο, αλλά οι παράγοντες που διακρίνουν το Hadoop είναι ότι χαρακτηρίζεται από: Προσβασιμότητα Το Hadoop μπορεί να τρέξει σε μεγάλα clusters αποτελούμενα από πολλές μηχανές ή σε υπηρεσίες cloud computing όπως το Amazon s Elastic Computer Cloud (EC2) Ευρωστία Λόγω του ότι προορίζεται να τρέχει σε συμβατικές μηχανές, το Hadoop έχει αναπτυχθεί με βάση τη θεώρηση των συχνών αστοχιών του υλικού. Έτσι, είναι σε θέση να διαχειρίζεται τα περισσότερα από τα σφάλματα αυτής της μορφής Κλιμάκωση Το Hadoop κλιμακώνεται γραμμικά για να χειριστεί περισσότερα δεδομένα με την προσθήκη περισσότερων κόμβων στο cluster Ευκολία στη χρήση Το Hadoop επιτρέπει στον χρήστη να γράφει γρήγορα και εύκολα αποδοτικό κώδικα κατάλληλο για παράλληλη επεξεργασία Η ευκολία και η προσβασιμότητα του Hadoop, του δίνει ένα ισχυρό προβάδισμα στην συγγραφή και την εκτέλεση κατανεμημένων προγραμμάτων. Ακόμη και φοιτητές μπορούν εύκολα και φθηνά να δημιουργήσουν το δικό τους Hadoop cluster. Από την άλλη πλευρά, η ευρωστία και η κλιμάκωσή του το καθιστούν κατάλληλο για τις πιο απαιτητικές εργασίες στο Yahoo και στο Facebook. Τα χαρακτηριστικά αυτά κάνουν το Hadoop δημοφιλές τόσο σε ακαδημαϊκό επίπεδο, όσο και στον τομέα της βιομηχανίας. Εικόνα 2.1: Υποβολή εργασίας σε Hadoop cluster ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 20

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Η Εικόνα 2.1, απεικονίζει την αλληλεπίδραση ενός χρήστη με ένα Hadoop cluster. Όπως φαίνεται και στην εικόνα, ένα Hadoop cluster είναι στην ουσία ένα σύνολο από συμβατικές διασυνδεδεμένες μηχανές. Όλη η αποθήκευση και η επεργασία των δεδομένων πραγματοποιείται μέσα στα όρια αυτού του cloud από computers. Διαφορετικοί χρήστες μπορούν να υποβάλλουν τις δικές τους εργασίες στο Hadoop, από διαφορετικούς clients, οι οποίες μπορεί να είναι οι προσωπικές τους desktop μηχανές σε τοποθεσίες πολύ απομακρυσμένες από το Hadoop cluster. Εικόνα 2.2: Tο περιβάλλον του Hadoop Το περιβάλλον του Hadoop απεικονίζεται στην Εικόνα 2.2. Όπως βλέπουμε το Hadoop αποτελείται από δύο μεγάλα υποσυστήματα: Το Hadoop Distributed File System (HDFS), το οποίο είναι υπεύθυνο για την διαχείριση των δεδομένων (I/O) Το MapReduce, το οποίο είναι υπεύθυνο για την εκτέλεση (CPU) και τρέχει πάνω από το HDFS 2. To I/O του MapReduce κατευθύνεται από/και προς το HDFS. 2 Το HDFS (Hadoop Distributed File System) αποτελεί την συνιστώσα αποθήκευσης του Hadoop. Πρόκειται για ένα κατανεμημένο σύστημα αρχείων, το οποίο είναι βελτιστοποιημένο για υψηλό throughput και δουλεύει καλύτερα με μεγάλα σύνολα δεδομένων (της τάξης των gigabytes και μεγαλύτερα). ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 24

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Η Εικόνα 2.3, δείχνει την υψηλού επιπέδου αρχιτεκτονική του Hadoop. Πρόκειται ξεκάθαρα για μια master-slave αρχιτεκτονική, στην οποία υπάρχει ένας μόνο master και πολλοί slaves. Κάθε κόμβος του Hadoop cluster, είτε πρόκειται για τον master είτε για κάποιο slave, τρέχει δύο daemons, ο ένας από τους οποίους είναι υπεύθυνος για το κομμάτι της διαχείρισης των δεδομένων ενώ ο άλλος για το κομμάτι της επεξεργασίας. Συγκεκριμένα, ο κόμβος master τρέχει τον Name-Node και τον Job- Tracker, ενώ κάθε slave τρέχει έναν Data-Node και έναν Task-Tracker daemon. Ο κόμβος master (Name-Node) είναι υπεύθυνος για την διαχείριση των λειτουργιών του συστήματος αρχείων (file system namespace), όπως να ανοίγει, να κλείνει και να μετονομάζει αρχεία και φακέλους, αλλά και για την ανάθεση των blocks των δεδομένων στους slaves. Στο κομμάτι της επεξεργασίας των δεδομένων, ο master (Task-Tracker) αποτελεί το σημείο διασύνδεσης μεταξύ του χρήστη και του περιβάλλοντος MapReduce. Όταν υποβάλλεται μια νέα εργασία MapReduce, o master την εισάγει σε μια ουρά από εργασίες σε αναμονή και τις εκτελεί με βάση το σχήμα first-come/first-served. Επιπλέον, αναθέτει τις διεργασίες map και reduce στους slaves. Κάθε slave (Data-Node) είναι υπεύθυνος να εξυπηρετεί αιτήματα ανάγνωσης και εγγραφής από την πελάτη, μαζί με την δημιουργία, τη διαγραφή και την αντιγραφή block δεδομένων πάντα υπό την καθοδήγηση του master (Name-Node). Επιπλέον, κάθε κόμβος slave εκτελεί εργασίες με βάση τις εντολές που δέχεται από τον master, ενώ χειρίζεται και τη μεταφορά των δεδομένων μεταξύ των φάσεων map και reduce. Εικόνα 2.3: High level αρχιτεκτονική του Hadoop ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 25

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Στην Εικόνα 2.4 παρουσιάζεται μια λογική αναπαράσταση της λειτουργίας ενός Hadoop cluster, όσον αφορά το κομμάτι διαχείρισης των δεδομένων (HDFS). Μέσα από την εικόνα διαφαίνεται η λειτουργία των Name-Node και Data-Node daemons όπως περιγράφηκε προηγουμένως. Εικόνα 2.4: Λογική λειτουργία του HDFS Στην Εικόνα 2.5 απεικονίζεται, αντίστοιχα, η λογική αναπαράσταση της λειτουργίας ενός Hadoop cluster, όσον αφορά το κομμάτι της επεξεργασίας δεδομένων (MapReduce). Οι δύο συνιστώσες οι οποίες διαδραματίζουν σημαντικό ρόλο στην συγκεκριμένη περίπτωση είναι ο Job-Tracker και ο Task-Tracker. Όπως βλέπουμε, αρχικά ο πελάτης υποβάλλει μια εργασία για εκτέλεση στο Hadoop cluster. Ο κόμβος master δέχεται το αίτημα του πελάτη και σπάει την εργασία αυτή σε μικρότερα κομμάτια, τα οποία στην συνέχεια αναθέτει μεταξύ των slaves. Επίσης, γίνεται ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 26

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE αναφορά των διεργασίων map και reduce οι οποίες περιγράφονται στην συνέχεια του εγγράφου. Εικόνα 2.5: Λογική λειτουργία του MapReduce Έχοντας κάνει μια γρήγορη επισκόπηση της πλατφόρμας του Hadoop, καθώς και των βασικών συνιστωσών του, μπορούμε να περάσουμε στην μελέτη της υπολογιστικής μηχανής του Hadoop, του MapReduce. 2.2 Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΜΟΝΤΕΛΟΥ Το MapReduce αποτελεί ένα προγραμματιστικό μοντέλο παράλληλης επεξεργασίας το οποίο προτάθηκε από την Google (2004) για την επεξεργασία ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 27

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE μεγάλων συνόλων δεδομένων σε συστοιχίες υπολογιστών (clusters) αποτελούμενες από χιλιάδες μηχανές. Το μοντέλο MapReduce είναι ευρέως διαδεδομένο και αρκετά απλό στην χρήση του, αφού αποκρύπτει από το χρήστη τις λεπτομέρειες που αφορούν την παραλληλοποίηση, την ανοχή σφαλμάτων, την βελτιστοποίηση, την επικοινωνία μεταξύ των μηχανών και την εξισορρόπηση του φόρτου. Το μοντέλο MapReduce αποτελεί, όπως αναφέρθηκε και παραπάνω, την καρδιά επεξεργασίας του Hadoop. Μέσω μιας απλής και ταυτόχρονα ισχυρής διεπαφής, η οποία βασίζεται σε δύο συναρτήσεις που καθορίζονται από τον χρήστη, το μοντέλο MapReduce μπορεί να χρησιμοποιηθεί για να εκφραστεί ένα μεγάλο εύρος προβλημάτων. Συγκεκριμένα, η ιδέα του μοντέλου MapReduce είναι να δέχεται ως είσοδο ένα σύνολο από ζεύγη <κλειδί-εισόδου, τιμή-εισόδου> και να παράγει στην έξοδο ένα σύνολο από ζεύγη της μορφής <κλειδί-εξόδου, αποτέλεσμα>. Ο προγραμματιστής εκφράζει τον εκάστοτε αλγόριθμο με βάση τις συναρτήσεις map και reduce. Η συνάρτηση map δέχεται σαν είσοδο ένα ζεύγος <κλειδί-εισόδου, τιμή-εισόδου> και παράγει σαν έξοδο ένα ζεύγος <κλειδί-εξόδου, τιμή-εξόδου>. Η έξοδος της συνάρτησης map, ταξινομημένη με βάση το κλειδί-εξόδου, αποτελεί την είσοδο στην συνάρτηση reduce. Η συνάρτηση reduce παίρνει σαν είσοδο την έξοδο της συνάρτησης map στην μορφή κλειδί-ενδιάμεσες τιμές και την επεξεργάζεται. Συνήθως για κάθε κλειδί έχουμε μία τιμή στην έξοδο. Η μορφή της εισόδου και εξόδου για τις συναρτήσεις map και reduce φαίνεται καλύτερα στην Εικόνα 2.6. Για την επίλυση ενός προβλήματος με το μοντέλο MapReduce, ο προγραμματιστής πρέπει να υλοποιήσει τουλάχιστον την συνάρτηση map. Κάποιες απλές εργασίες μπορούν να υλοποιηθούν μόνο με την χρήση της συνάρτησης map. Εικόνα 2.6: Είσοδος/έξοδος των συναρτήσεων Map/ Reduce Οι Εικόνες 2.7 και 2.8 απεικονίζουν την λογική αναπαράσταση των συναρτήσεων map και reduce που περιγράφηκαν παραπάνω. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 28

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Εικόνα 2.7: Λογική αναπαράσταση της συνάρτησης Map Εικόνα 2.8: Λογική αναπαράσταση της συνάρτησης Reduce Στην Εικόνα 2.9, περιγράφεται ο τρόπος υποβολής μια εργασίας στο περιβάλλον εκτέλεσης MapReduce. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 29

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Εικόνα 2.9: Υποβολή εργασίας στο MapReduce Τέλος, στην Εικόνα 2.10 απεικονίζεται η ροή των δεδομένων εισόδου για το μοντέλο MapReduce. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 30

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Εικόνα 2.10: Ροή δεδομένων στο MapReduce ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 31

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE 2.3 ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ Στην ενότητα αυτή παρουσιάζεται ένα απλό παράδειγμα χρήσης του MapReduce με σκοπό την καλύτερη κατανόηση της λειτουργίας του μοντέλου. ΠΡΟΒΛΗΜΑ ΜΕΤΡΗΣΗΣ ΣΥΧΝΟΤΗΤΑΣ ΕΜΦΑΝΙΣΗΣ ΛΕΞΕΩΝ Στόχος του προβλήματος είναι η μέτρηση της συχνότητας εμφάνισης κάθε λέξης που συναντάται σε μια μεγάλη συλλογή από αρχεία κειμένου. ΕΙΣΟΔΟΣ ΣΤΟ ΠΡΟΒΛΗΜΑ Μια μεγάλη συλλογή από αρχεία κειμένου. ΕΞΟΔΟΣ/ΛΥΣΗ Μια λίστα από μοναδικές λέξεις, όπου για κάθε λέξη αναφέρεται η συχνότητα εμφάνισής της στη συλλογή των αρχείων κειμένου. Ας θεωρήσουμε ότι η συλλογή κειμένων αποτελείται από ένα μοναδικό έγγραφο το οποίο περιλαμβάνει μόνο την πρόταση: «Do as I say, not as I do» Τότε, αυτό που θα πάρουμε ως αποτέλεσμα είναι η διπλανή λίστα λέξεων, όπου κάθε λέξη συνοδεύεται από την συχνότητα εμφάνισής της στην πρόταση. Καλούμε το πρόβλημα αυτό word counting. Όταν η συλλογή των εγγράφων είναι μικρή, ένα απλό πρόγραμμα, όπως αυτό που περιγραφεται από τον παρακάτω ψευδοκώδικα, μπορεί να αποδειχθεί αρκετό. Το πρόγραμμα σαρώνει όλα τα έγγραφα. Για κάθε έγγραφο, οι λέξεις εξάγονται η μία μετά την άλλη χρησιμοποιώντας μια τεχνική tokenization. Σε κάθε λέξη αντιστοιχεί ένας μετρητής ο οποίος καλείται wordcount ο οποίος αυξάνεται κατά 1 σε κάθε εμφάνιση της λέξης. Στο τέλος, η συνάρτηση display εμφανίζει όλα τα entries του wordcount. Ψευδοκώδικας «Word Counting» 1: define wordcount as Multiset; 2: for each document in documentset { 3: T = tokenize(document); 4: for each token in T { 5: wordcount[token]++; 6: } 7: } 8: display(wordcount) ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 32

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Το παραπάνω πρόγραμμα θα δουλεύει καλά ώσπου η συλλογή των εγγράφων προς επεξεργασία γίνει πολύ μεγάλη. Για παράδειγμα, έστω ότι θέλουμε να κατασκευάσουμε ένα spam filter, ώστε να αναγνωρίσουμε τις λέξεις οι οποίες εμφανίζονται συχνά σε spam emails. Η σάρωση όλων των emails χρησιμοποιώντας μόνο μια μηχανή θα είναι εξαιρετικά χρονοβόρα. Ωστόσο, μπορούμε να επιταχύνουμε την όλη διαδικασία τροποποιώντας το παραπάνω πρόγραμμα ώστε να κατανέμει την εργασία μεταξύ διαφορετικών μηχανών. Έτσι, κάθε μηχανή θα επεξεργάζεται ένα κλάσμα του συνολικού όγκου των emails. Όταν όλες οι μηχανές ολοκληρώσουν την εργασία τους, μια δεύτερη φάση επεξεργασίας θα συνδυάσει τα ενδιάμεσα αποτελέσματα των μηχανών. Στην συνέχεια περιγράφουμε την κατανεμημένη εκτέλεση της εργασίας word counting στο περιβάλλον MapReduce. ΥΛΟΠΟΙΗΣΗ ΣΕ MAPREDUCE Όπως περιγράφηκε και παραπάνω, η ανάπτυξη ενός προγράμματος σε MapReduce απαιτεί την υλοποίηση δύο συναρτήσεων, της map και της reduce. Η συνάρτηση map, αφού δεχθεί την είσοδο, δίνει στην έξοδο ζευγάρια της μορφής <word, 1>. Όπου word είναι κάθε λέξη η οποία συναντάται μέσα στο κείμενο. Όταν η συνάρτηση map ολοκληρώσει την εκτέλεσή της θα περάσει την έξοδό της στην συνάρτηση reduce. Η συνάρτηση reduce θα αθροίσει τις μοναδιαίες τιμές για κάθε μεμονωμένη λέξη και θα δώσει στην έξοδο το πλήθος εμφάνισης κάθε μοναδικής λέξης μέσα στα αρχεία εισόδου. Στην Εικόνα 2.11, φαίνεται ένα παράδειγμα εκτέλεσης της λειτουργίας word counting στο περιβάλλον MapReduce. Εικόνα 2.11: Εκτέλεση της εργασίας WordCount σε περιβάλλον MapReduce ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 33

ΚΕΦΑΛΑΙΟ 2: ΤΟ ΜΟΝΤΕΛΟ MAPREDUCE Στην Εικόνα 2.12, απεικονίζεται η υλοποίηση του προβλήματος word counting στην γλώσσα προγραμματισμού Java. Όπως βλέπουμε, το πρόγραμμα σπάει σε δύο λογικές συναρτήσεις, τη map και τη reduce. Οι συναρτήσεις αυτές εκτελούνται σειριακά. Εικόνα 2.12 Word_count.java ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 34

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Κ Ε Φ Α Λ Α Ι Ο 3 : S P AT I O T E M P O R A L J O I N ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 35

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN SPATIOTEMPORAL JOIN Στο κεφάλαιο αυτό περιγράφεται το πρόβλημα του spatial join μεταξύ ενός συνόλου τροχιών (trajectories) κινούμενων αντικειμένων και ενός συνόλου περιοχών ενδιαφέροντος (regions). Επειδή, όταν δουλεύουμε με κινούμενα αντικείμενα τα αρχεία εισόδου είναι συνήθως πολύ μεγάλα σε μέγεθος κάθε στάδιο προεπεξεργασίας πρέπει να εκτελεστεί σε κατανεμημένο περιβάλλον. Στη συνέχεια του κεφαλαίου προτείνονται τρεις αλγόριθμοι επίλυσης του προβλήματος, οι οποίοι αφορούν σε κατανεμημένο περιβάλλον εκτέλεσης και βασίζονται στο μοντέλο MapReduce. 3.1 Η ΕΝΝΟΙΑ ΤΗΣ ΤΡΟΧΙΑΣ Πριν προχωρήσουμε παραπέρα στην μελέτη του spatial join, θα ήταν καλό να κατανοήσουμε αρχικά την βασική έννοια της τροχιάς ενός κινούμενου αντικειμένου. Τροχιά (trajectory) είναι μια περιγραφή της φυσικής κίνησης ενός κινούμενου αντικειμένου με την πάροδο του χρόνου, σε μία από τις ακόλουθες βασικές αναπαραστάσεις των τροχιών: Raw trajectory, είναι η καταγραφή των θέσεων ενός αντικειμένου σε καθορισμένα χρονικά διαστήματα, δοθέντος ενός κινούμενου αντικειμένου και ενός χρονικού διαστήματος. Αναπαριστάται ως μια ακολουθία γεωμετρικών θέσεων (xi, yi, ti) στον δισδιάστατο χώρο. Εικόνα 3.1: Raw Trajectory ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 36

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Structured trajectory, προκύπτει από την σύνθεση raw trajectories σε τμήματα (segments). Εικόνα 3.2: Structured Trajectory Semantic trajectory, εκφράζει την application oriented σημασία χρησιμοποιώντας 4 συνιστώσες (stop, move, begin, end). Οι συνιστώσες αυτές δεν αποτελούν πλέον χωρο-χρονικές θέσεις, αλλά σημασιολογικά αντικείμενα τα οποία συνδέονται στη γενική γεωγραφική γνώση. Εικόνα 3.3: Semantic Trajectory ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 37

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 3.2 ΕΙΣΑΓΩΓΗ ΣΤΟ SPATIOTEMPORAL JOIN 3.2.1 Ορισμός προβλήματος Το πρόβλημα στο οποίο επικεντρώνεται η παρούσα εργασία ορίζεται ως εξής: Η είσοδος καθορίζεται από μια συλλογή χωρικών περιοχών R (spatial regions) και μια συλλογή από τροχιές T (trajectories). Δοθέντων αυτών των δύο συνόλων δεδομένων, ο στόχος μας είναι να υπολογίσουμε την πράξη του spatial join, δηλαδή να εντοπίσουμε όλα τα ζευγάρια (r, t), όπου r R, t T τέτοια ώστε το r να τέμνει το t σε κάποια χρονική στιγμή ts. Μάλιστα η εκτέλεση της πράξης του spatial join τοποθετείται σε κατανεμημένο περιβάλλον (cluster υπολογιστών) και βασίζεται στο προγραμματιστικό μοντέλο MapReduce. Στην Εικόνα 3.4 απεικονίζεται ένα στιγμιότυπο του προβλήματος. Συγκεκριμένα, απεικονίζονται δύο τροχιές κινούμενων αντικειμένων (trajectories), οι T1 και Τ2, καθώς και δύο περιοχές ενδιαφέροντος (regions of interest), οι R1 και R2. Στο σημείο αυτό αξίζει να σημειώσουμε ότι, για λόγους απλότητας οι περιοχές θεωρείται ότι είναι ορθογώνια παραλληλόγραμμα, με τις πλευρές τους να είναι παράλληλες προς τους άξονες x και y. Η ίδια προσέγγιση υιοθετείται σε όλη την έκταση του εγγράφου, καθώς και στην υλοποίηση των αλγορίθμων. Ωστόσο, σε μια διαφορετική περίπτωση όπου οι περιοχές δεν είναι απαραιτήτως ορθογώνιες μπορούμε να κάνουμε μια απλοποίηση θεωρώντας το minimum bounding rectangle (ΜBR) κάθε περιοχής. R1 Τ1 R2 Τ2 Εικόνα 3.4: Στιγμιότυπο προβλήματος spatial join ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 38

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Η είσοδος στο πρόβλημα υπολογισμού του spatial join για το παραπάνω στιγμιότυπo θα είναι δύο αρχεία, το αρχείο των τροχιών και το αρχείο των περιοχών. Το αρχείο των τροχιών (trajectory dataset) αντιστοιχεί σε μια συλλογή εγγραφών που αναπαριστούν τις τροχιές κίνησης ενός συνόλου κινούμενων αντικειμένων. Θεωρούμε ότι η προσέγγιση που ακολουθείται για την αναπαράσταση των τροχιών είναι η αναπαράσταση Raw Trajectory, όπως αναφέρθηκε παράπανω. Το αρχείο των περιοχών (region dataset) αναπαριστά μια συλλογή περιοχών ενδιαφέροντος (regions of interest) στο δισδιάστατο χώρο. Θεωρούμε ότι οι περιοχές ενδιαφέροντος είναι ορθογώνιες περιοχές στο χώρο με τις πλευρές του παράλληλες προς τους δύο άξονες του δισδιάστατου χώρου, όπως αναφέρθηκε και παραπάνω. Τα αρχεία αυτά θα έχουν την παρακάτω μορφή: Αρχείο τροχιών Τ1, t11, ts11 T1, t12, ts12 Αρχείο περιοχών R1, bl1, tr1 R2, bl2, tr2 T1, t13, ts13 T1, t14, ts14 T2, t21, ts21 T2, t22, ts22 Όπως βλέπουμε, στο αρχείο των τροχιών περιέχονται εγγραφές της μορφής <Τi, tij, tsij>, όπου Τi είναι το αναγνωριστικό ενός κινούμενου αντικειμένου, tij είναι μια καταγεγραμμένη θέση της τροχιάς του αντικειμένου Ti και tsij είναι η χρονική στιγμή καταγραφής της θέσης ij. Αντίθετα, στο αρχείο των περιοχών περιέχονται εγγραφές της μορφής <Ri, bli, tri>, όπου Ri είναι το αναγνωριστικό μιας περιοχής ενδιαφέροντος, ενώ οι τιμές bli και tri αναπαριστούν το κάτω αριστερό και το πάνω δεξιό άκρο της κάθε περιοχής. Στο σημείο αυτό να διευκρινύσουμε ότι, σε όλη την έκταση του εγγράφου θεωρούμε ότι οι περιοχές ενδιαφέροντος που δίνονται ως είσοδος στο πρόβλημα είναι ορθογώνιες, για χάριν απλότητας. Επίσης, θεωρούμε ότι τα αντικείμενα που μελετάμε ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 39

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN κινούνται στο δισδιάστατο χώρο (2D) επομένως όλα τα σημεία θα αναπαριστώνται ως ζεύγη <longitude, latitude>. R1 s12 s13 Τ1 R2 Τ2 s23 s24 Εικόνα 3.5: Λύση προβλήματος spatial join Στην Εικόνα 3.5, δίνεται η λύση του προβλήματος για το στιγμιότυπο της Εικόνας 3.4. Η εκτέλεση της λειτουργίας του spatial join στο στιγμιότυπο αυτό δίνει ως αποτέλεσμα στην έξοδο τις ακόλουθες εγγραφές: <Τ1, s12, R1, ts12_1, ts12_2> <T1, s13, R1, ts13_1, ts13_2> <Τ2, s22, R2, ts22_1, ts22_2> <T2, s24, R2, ts24_1, ts24_2> όπου η πρώτη τιμή κάθε εγγραφής είναι το αναγνωριστικό του κινούμενου αντικειμένου, η δεύτερη τιμή αντιστοιχεί σε ένα τμήμα της τροχιάς, η τιμή Ri αναπαριστά μια περιοχή ενδιαφέροντος, ενώ οι τιμές ts_1 και ts_2 απεικονίζουν τα χρονικά στιγμιότυπα τα οποία αντιστοιχούν στα σημεία τομής του τμήματος με την περιοχή. Εδώ, πρέπει να σημειώσουμε ότι για τον υπολογισμό των χρονικών αυτών στιγμιοτύπων χρησιμοποιούμε την παραδοχή ότι τα αντικείμενα κινούνται με σταθερή ταχύτητα ακολουθώντας τους κανόνες της ευθύγραμμης ομαλής κίνησης. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 40

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 3.2.2 Προσέγγιση επίλυσης Όπως αναφέρθηκε και παραπάνω, όταν δουλεύουμε με κινούμενα αντικείμενα, τα αρχεία εισόδου στο πρόβλημα του spatial join είναι συνήθως μια μεγάλη συλλογή από καταγεγραμμένες θέσεις (positions) της τροχιάς τους, οι οποίες αναφέρονται από τα αντικείμενα σε συγκεκριμένες χρονικές στιγμές (timestamps). Ωστόσο, τα δεδομένα αυτά ενίοτε μπορεί να έχουν την μορφή τροχιών (trajectories) ή τμημάτων τροχιών (segments). Επιπλέον, τα αρχεία αυτά είναι μεγάλα σε μέγεθος και επομένως κάθε στάδιο προεπεξεργασίας τους πρέπει να εκτελεστεί σε κατανεμημένο περιβάλλον, για λόγους απόδοσης. Το πρώτο βήμα προεπεξεργασίας που πρέπει να εκτελεστεί είναι η σύνθεση των τροχιών ή των τμημάτων των τροχιών από τα αρχικά δεδομένα εισόδου. Μόλις δημιουργηθούν οι τροχιές ή τα τμήματα, θα πρέπει να διαμεριστούν και να κατανεμηθούν μεταξύ των κόμβων του cluster χρησιμοποιώντας ένα σχήμα που βασίζεται στην έννοια των tiles. Στην Εικόνα 3.6, απεικονίζονται δύο διαφορετικές στρατηγικές διαμέρισης του χώρου σε tiles. Η πρώτη διαμερίζει τον χώρο σε ισομεγέθη tiles χωρίς να λαμβάνει υπόψη την κατανομή των δεδομένων εισόδου στο χώρο, ενώ αντίθετα η δεύτερη στρατηγική διαμέρισης λαμβάνει υπόψη την κατανομή. Το δεύτερο βήμα, μετά την διαμέριση των τροχιών ή καλύτερα των τμημάτων των τροχιών στους κόμβους του cluster, είναι η εκτέλεση της λειτουργίας του spatial join μεταξύ των τμημάτων (segments) που προέκυψαν από το προηγούμενο βήμα και των περιοχών ενδιαφέροντος. Ωστόσο, μέχρι στιγμής δεν έγινε λόγος για τρόπο διαχείρισης της συλλογής των χωρικών περιοχών. Στο σημείο αυτό, είναι σημαντικό να αναφέρουμε ότι το σύνολο δεδομένων των περιοχών ενδιαφέροντος θεωρείται ότι είναι σημαντικά μικρότερο σε μέγεθος σε σχέση με τη συλλογή των τροχιών. Έτσι, αντί να δοθεί ως αρχείο εισόδου στο πρόβλημα μαζί με το αρχείο των τροχιών, επιλέγεται να αποθηκευτεί στην distributed cache του Hadoop, θεωρώντας βέβαια ότι το μέγεθός του είναι κατάλληλο. Όλοι οι κόμβοι του cluster έχουν πρόσβαση στην distributed cache, επομένως η συλλογή των περιοχών είναι προσπελάσιμη από όλους τους κόμβους κατά την εκτέλεση της λειτουργίας του join. Κάθε κόμβος λοιπόν εκτελεί την πράξη του spatial join μεταξύ της συλλογής των περιοχών στην cache και των διαμερίσεων των τροχιών που λαμβάνει ως είσοδο. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 41

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Εικόνα 3.6: Συμμετρική vs. K-d tree διαμέριση του χώρου Μια συνηθισμένη προσέγγιση, η οποία υιοθετείται για την εκτέλεση του spatial join, βασίζεται σε δύο φάσεις. Στην πρώτη φάση του join χρησιμοποιείται μια απλοποιημένη αναπαράσταση των χωρικών περιοχών ενδιαφέροντος (π.χ. Minimum Bounding Rectangles - MBRs) και επιστρέφεται ένα σύνολο από υποψήφια ζεύγη τμημάτων-τροχιών και περιοχών ενδιαφέροντος τα οποία θα ελεγχούν για το αν ικανοποιούν το ερώτημα join. Στην δεύτερη φάση, από τα υποψήφια ζεύγη <segment, region> δίνονται στην έξοδο μόνο αυτά που ικανοποιούν το ερώτημα του spatial join. Η προσέγγιση αυτή των δύο βημάτων αναφέρεται ως «filter and refinement process». Στην συνέχεια παρουσιάζονται τρεις αλγόριθμοι υπολογισμού του spatial join, οι οποίοι αναπτύχθηκαν στα πλαίσια αυτής της διπλωματικής. Και οι τρεις αλγόριθμοι χρησιμοποιούν το σχήμα διαμέρισης του χώρου το οποίο βασίζεται στα tiles, ενώ για την εκτέλεση του spatial join υιοθετούν την προσέγγιση «filter and refinement». 3.3 ΑΛΓΟΡΙΘΜΟΙ SPATIOTEMPORAL JOIN Στην ενότητα αυτή παρουσιάζονται τρεις αλγόριθμοι υπολογισμού του spatial join μεταξύ ενός συνόλου τροχιών και ενός συνόλου περιοχών. Οι αλγόριθμοι αυτοί υλοποιήθηκαν στηριζόμενοι στο προγραμματιστικό μοντέλο MapReduce, και αφορούν τόσο τις φάσεις προεπεξεργασίας (δημιουργία τροχιών και διαμέριση) που αναφέρθηκαν παραπάνω όσο και την εκτέλεση της λειτουργίας του join. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 42

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 3.3.1 Αλγόριθμος UPA Μια αφελής προσέγγιση στην επίλυση του προβλήματος του spatial join είναι ο αλγόριθμος UPA (Uniformity-based Processing Algorithm). Ο αλγόριθμος αυτός βασίζεται στην συμμετρική διαμέριση του χώρου και απαιτεί δύο κύκλους MapReduce. Εν συντομία, ο πρώτος κύκλος είναι υπεύθυνος για την διαμέριση των δεδομένων, ενώ ο δεύτερος κύκλος εκτελεί το spatial join σε κάθε partition που προκύπτει από τον πρώτο κύκλο. Στην Εικόνα 3.7 απεικονίζεται η λογική του αλγορίθμου UPA. Εικόνα 3.7: Αλγόριθμος UPA ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 43

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 1 ος κύκλος UPA Ο κύκλος αυτός είναι υπεύθυνος για την διαμέριση του χώρου και εν συνεχεία την κατανομή των τμημάτων των τροχιών. Κατά την διάρκεια της φάσης Map, κάθε mapper διαβάζει το κομμάτι της εισόδου που του αντιστοιχεί, το οποίο είναι μια συλλογή εγγραφών της μορφής <trajectory-id, longitude, latitude, timestamp> και μεταφέρει τα δεδομένα. Κάθε reducer, συλλέγει τις θέσεις (locations) ενός αντικειμένου και δημιουργεί τα segments τα οποία στην συνέχεια κατανέμει με βάση την συμμετρική διαμέριση του χώρου που έχει πραγματοποιήσει. Η έξοδος του πρώτου κύκλου γράφεται στο σύστημα αρχείων HDFS και αποτελείται από εγγραφές της μορφής <partition, segment>. 2 ος κύκλος UPA Κατά τον δεύτερο κύκλο πραγματοποιείται το spatial join μεταξύ των δύο συλλογών. Κατά την διάρκεια της φάσης Map, κάθε mapper διαβάζει το κομμάτι της εισόδου που του αντιστοιχεί, το οποίο περιέχει εγγραφές της μορφής <partition, segment>. Κάθε mapper αναπαράγει την είσοδο του, ενώ κάθε reducer εκτελεί το spatial join μεταξύ των segments που δέχτηκε ως είσοδο και των regions που διαβάζει από την distributed cache. Η τελική έξοδος γράφεται πίσω στο HDFS. Ένα θετικό χαρακτηριστικό της UPA προσέγγισης είναι ότι απαιτεί μόνο δύο κύκλους MapReduce. Αυτό οφείλεται κυρίως στο ότι ακολουθεί την στρατηγική της συμμετρικής διαμέρισης του χώρου η οποία εκτελείται στην φάση reduce του πρώτου κύκλου. Το μέγεθος κάθε partition αποφασίζεται πριν την εκτέλεση και εξαρτάται μόνο από το μέγεθος του χώρου ενδιαφέροντος. Ο βασικός περιορισμός που χαρακτηρίζει την συγκεκριμένη προσέγγιση είναι ότι η συμμετρική διαμέριση μπορεί να οδηγήσει σε μη ισορροπημένο cluster όσον αφορά το φόρτο εργασίας, κυρίως στην περίπτωση εκείνη που τα δεδομένα ακολουθούν skew κατανομή. Συγκεκριμένα, οι πυκνές περιοχές του χώρου θα οδηγήσουν τους αντίστοιχους reducers στην εκτέλεση περισσότερης εργασίας, προκαλώντας κακή ισορροπία φόρτου. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 44

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 3.3.2 Αλγόριθμος SPA Καθώς στον πραγματικό κόσμο είναι αδύνατο να προβλέψουμε την κίνηση των αντικειμένων, χρειαζόμαστε μια εναλλακτική προσέγγιση η οποία να μπορεί να αντιμετωπίσει τα θέματα που πιθανώς να προκύπτουν από την κατανομή των δεδομένων. Για το σκοπό αυτό, στην προσέγγιση που παρουσιάζεται στον παρόν υποκεφάλαιο υιοθετούμε την τεχνική της τυχαίας δειγματοληψίας με σκοπό να επιλέξουμε ένα μικρό ποσοστό των δεδομένων εισόδου (τμημάτων των τροχιών) και να προχωρήσουμε στη διαμέριση του χώρου με βάση αυτό το δείγμα. Στην περίπτωση αυτή, η διαμέριση του χώρου πραγματοποιείται χρησιμοποιώντας μια μη συμμετρική στρατηγική διαμέρισης η οποία βασίζεται στην ιδέα του k-d tree. Αυτό είναι ένα από τα βασικά χαρακτηριστικά της προσέγγισης SPA (Sampling-based Processing Algorithm). Στην Εικόνα 3.3, φαίνεται το κέρδος που αποφέρει η προσέγγιση αυτή στην περίπτωση ενός συνόλου σημείων. Είναι προφανές, ότι η συμμετρική διαμέριση μπορεί να οδηγήσει σε κακή κατανομή των σημείων στα κελιά, οδηγώντας σε μείωση της απόδοσης κατά την επεξεργασία. Στον κόσμο του MapReduce, τα προβλήματα ισορροπίας φόρτου συνήθως έχουν να κάνουν με το γεγονός υπερφόρτωσης κάποιων reducers, προκαλώντας bottleneck. Η τυχαία δειγματοληψία χρησιμοποιείται συχνά ως εργαλείο για την μείωση του μεγέθους ενός συνόλου δεδομένων, έτσι ώστε να εκτελέσουμε κάποιο στάδιο προεπεξεργασίας ή εκπαίδευσης πριν την εκτέλεση του βασικού αλγορίθμου. Για παράδειγμα, η τυχαία δειγματοληψία μπορεί να χρησιμοποιηθεί πριν την εκτέλεση του clustering έτσι ώστε να δώσει μια ιδέα για το πόσα clusters περιέχονται στα δεδομένα. Στην περίπτωση μας, η τυχαία δειγματοληψία χρησιμοποιείται για να βοηθήσει στην διαμέριση του χώρου, αποκαλύπτοντας τις πυκνές περιοχές του χώρου των δεδομένων. Με βάση τον τρόπο με τον οποίο πραγματοποιείται η δειγματοληψία διακρίνουμε δύο παραλλαγές του SPA, οι οποίες περιγράφονται στη συνέχεια. 3.3.2.1 Παραλλαγή SPA-PS Η πρώτη παραλλαγή του SPA πραγματοποιεί δειγματοληψία πάνω στα αρχικά δεδομένα (locations) και καλείται SPA-PS (Sampling-based Processing Algorithm ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 45

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN using Point Sampling). Ο αλγόριθμος αυτός εκτελείται σε τρεις κύκλους MapReduce όπως φαίνεται στην Εικόνα 3.8. 1 ος κύκλος SPA-PS Ο πρώτος κύκλος είναι υπεύθυνος για την δειγματοληψία και την δημιουργία των partitions. Στον κύκλο αυτό, κάθε mapper διαβάζει την είσοδο του, η οποία αποτελείται από εγγραφές της μορφής <objectid, location, time>, και με βάση τον ρυθμό δειγματοληψίας ο οποίος καθορίζεται από τον χρήστη, επιλέγει ένα ποσοστό της εισόδου του και το στέλνει στην έξοδο. Κατά την διάρκεια της φάσης reduce, ενεργοποιείται ένας μοναδικός reducer ο οποίος λαμβάνει ως είσοδο το συνολικό δείγμα που παράχθηκε από όλους τους mappers και πραγματοποιεί την διαμέριση του χώρου. Αυτό επιτυγχάνεται χρησιμοποιώντας το ίδιο κλειδί στα ζευγάρια key, value τα οποία παράγονται από τους mappers. Τέλος, ο reducer γράφει στο HDFS την περιγραφή (bounding box) της κάθε διαμέρισης. 2 ος κύκλος SPA-PS Κατά τη διάρκεια του δεύτερου κύκλου, παράγονται τα τμήματα των τροχιών και κατανέμονται στα partitions. Συγκεκριμένα, κάθε mapper διαβάζει την είσοδό του, η οποία περιέχει εγγραφές της μορφής <objectid, location, time> και στέλνει τις εγγραφές στην έξοδο. Κάθε reducer παράγει τα τμήματα των τροχιών τα όρια των partitions που υπολογίστηκαν στον προηγούμενο κύκλο, αναθέτει τα segments στα κατάλληλα partitions. Η έξοδος του δεύτερου κύκλου περιέχει εγγραφές της μορφής <partition, segment>. Στο σημείο αυτό αξίζει να σημειωθεί ότι, αν ένα segment διαπερνά τα όρια ενός partition, τότε το segment σπάει στα όρια κάθε partition και επομένως παράγονται περισσότερες από μια εγγραφές για αυτό το segment. 3 ος κύκλος SPA-PS Ο κύκλος αυτός εκτελεί το join μεταξύ του συνόλου των περιοχών που βρίσκονται αποθηκευμένες στην cache και των partitions. Συγκεκριμένα, κάθε mapper διαβάζει την είσοδο του και την αναπαράγει στην έξοδο. Στην συνέχεια, κάθε reducer εκτελεί το spatial join μεταξύ των regions στην cache και των partitions που προέκυψαν από τους mappers. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 46

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Εικόνα 3.8: Αλγόριθμος SPA-PS ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 47

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 3.3.2.2 Παραλλαγή SPA-SS Όπως περιγράφηκε παραπάνω, η δειγματοληψία εκτελείται πάνω στις χωρικές θέσεις των κινούμενων αντικειμένων κατά τη φάση map του πρώτου κύκλου. Δηλαδή, ο αλγόριθμος SPA-PS χρησιμοποιεί τις θέσεις για να αναγνωρίσει την κατανομή των τμημάτων των τροχιών. Η προσέγγιση αυτή είναι καλή στην περίπτωση που τα τμήματα των τροχιών είναι σχετικά μικρά, δηλαδή αντιστοιχούν σε αντικείμενα τα οποία κινούνται με μια λογική ταχύτητα. Ωστόσο, μεγάλα τμήματα τροχιών τα οποία αντιστοιχούν σε αργά κινούμενα αντικείμενα μπορεί να δημιουργήσουν προβλήματα. Για το λόγο αυτό προτείνεται μια δεύτερη παραλλαγή του αλγορίθμου SPA, η οποία βασίζεται σε δειγματοληψία των segments και όχι των locations. Η εναλλακτική αυτή προσέγγιση καλείται SPA-SS (Sampling-based Processing Algorithm using Segment Sampling) και απαιτεί τρεις κύκλους MapReduce. Ο αλγόριθμος SPA-SS απεικονίζεται στην Εικόνα 3.6. 1 ος κύκλος SPA-SS Ο κύκλος αυτός είναι υπεύθυνος για την δημιουργία των segments από τα αρχικά δεδομένα. Οι mappers περνούν την έξοδό τους στην φάση reduce, όπου κάθε reducer παράγει έξοδο της μορφής <objectid, segment>. 2 ος κύκλος SPA-SS Στο δεύτερο κύκλο MapReduce, οι mappers πραγματοποιούν δειγματοληψία πάνω στα segments που προέκυψαν από την προηγούμενη φάση και αναπαράγουν το δείγμα αυτό στην έξοδο τους προς έναν συγκεκριμένο reducer. Ο reducer αυτός είναι υπεύθυνος για την δημιουργία των ορίων των partitions τα οποία θα χρησιμοποιηθούν στον επόμενο γύρο για την διαμέριση των δεδομένων και την εκτέλεση του join. 3 ος κύκλος SPA-SS Στον τελευταίο κύκλο, κάθε mapper διαβάζει την είσοδό του και με βάση τα όρια διαμέρισης τα οποία παράχθηκαν στον προηγούμενο κύκλο, δίνει στην έξοδο εγγραφές της μορφής <partition, segment>. Έπειτα, κάθε reducer λαμβάνει την είσοδό του και προχωρά στην εκτέλεση του join. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 48

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN Εικόνα 3.9: Αλγόριθμος SPA-SS ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 49

ΚΕΦΑΛΑΙΟ 3: SPATIOTEMPORAL JOIN 3.3.3 Σύνοψη αλγορίθμων Με βάση τα σχεδιαγράμματα των αλγορίθμων SPA-PS και SPA-SS που δίνονται στις Εικόνες 3.8 και 3.9, αλλά και όσα αναφέρθηκαν παραπάνω, βλέπουμε ότι οι δύο προσεγγίσεις διαφέρουν ουσιαστικά στην φάση της δειγματοληψίας. Ο αλγόριθμος SPA-PS πραγματοποιεί δειγματοληψία πάνω στα locations, ενώ ο αλγόριθμος SPA-SS εκτελεί δειγματοληψία πάνω στα segments. Όπως αποδεικνύεται και μέσα από την πειραματική μελέτη που παρουσιάζεται στην επόμενη ενότητα, οι δύο αυτοί αλγόριθμοι δεν παρουσιάζουν διαφορά στην απόδοση. Ωστόσο, ο αλγόριθμος SPA-SS είναι η κατάλληλη επιλογή στην περίπτωση που τα αρχικά δεδομένα εισόδου έχουν την μορφή segments. Στην περίπτωση αυτή, η δειγματοληψία πάνω στα segments θα αποκαλύψει την κατανομή των δεδομένων. Επιπλέον, να σημειώσουμε ότι σε μια τέτοια περίπτωση απαιτούνται μόνο δύο κύκλοι MapReduce, αφού ο κύκλος της δημιουργίας των segments δεν χρειάζετα ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 50

ΚΕΦΑΛΑΙΟ 4: ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ Κ Ε Φ Α Λ Α Ι Ο 4 : Π Ε Ι Ρ Α Μ ΑΤ Ι Κ Η Μ Ε Λ Ε Τ Η ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 51

ΚΕΦΑΛΑΙΟ 4: ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ Στην ενότητα αυτή, παρουσιάζουμε την πειραματική αξιολόγηση των αλγορίθμων που παρουσιάστηκαν στην προηγούμενη ενότητα. Συγκεκριμένα, συγκρίνουμε τον αλγόριθμο Baseline ή UPA, ο οποίος απαιτεί δύο κύκλους MapReduce με τις δύο παραλλαγές του αλγορίθμου SPA ο οποίος βασίζεται στην δειγματοληψία, δηλαδή τους αλγορίθμους SPA-PS και SPA-SS, οι οποίοι απαιτούν τρεις φάσεις MapReduce. Ο στόχος της μελέτης αυτής είναι να αναγνωριστεί η πιο αποδοτική υλοποίηση της λειτουργίας του spatial join μεταξύ ενός συνόλο τροχιών (trajectories) και ενός συνόλου χωρικών περιοχών ενδιαφέροντος (spatial regions of interest) στο περιβάλλον MapReduce. Τα πειράματα έχουν χωριστεί σε δύο διαφορετικά σύνολα. Το πρώτο σύνολο εστιάζει σε θέματα εξισορρόπησης φόρτου, ενώ το δεύτερο μελετά την απόδοση των τριών τεχνικών όσον αφορά τον χρόνο εκτέλεσης αλλά και τις δυνατότητες κλιμάκωσης τους. 4.1 CLUSTER ΚΑΙ ΔΕΔΟΜΕΝΑ Οι αλγόριθμοι υλοποιήθηκαν για την έκδοση 1.2.1 του Hadoop, ενώ όλα τα πειράματα έτρεξαν σε ένα cluster αποτελούμενο από 16 κόμβους (nodes). Κάθε κόμβος του cluster τρέχει το λειτουργικό Fedora Linux version 3.6.11 σε επεξεργαστή Pentium Dual Core 3.20GHz CPU με 2GB μνήμη RAM. Επιπλέον, κάθε κόμβος τρέχει έναν Task Tracker και Data Node daemon, ενώ υπάρχει ένας ανεξάρτητος server ο οποίος ενεργεί ως Job Tracker και Name Node. Κάθε κόμβος υποστηρίζει την εκτέλεση τριών map tasks και δύο reduce tasks ταυτόχρονα. Η διαθέσιμη μνήμη για κάθε map task είναι 200MB ενώ για κάθε reduce task έχει οριστεί στα 300MB. Τέλος, για λόγους συμβατότητας όλοι οι αλγόριθμοι υλοποιήθηκαν με την JAVA SDK 1.6. Τα σύνολα δεδομένων που χρησιμοποιήθηκαν στα πειράματα, που περιγράφονται παρακάτω, δημιουργήθηκαν με τον GSTD Generator (Generate Spatio- Temporal Data) μέσω του οποίου καθορίστηκε το μέγεθος αλλά και η κατανομή των δεδομένων. Συγκεκριμένα, δημιουργήθηκαν σύνολα δεδομένων που ακολουθούν την uniform, την normal και τη skew κατανομή. Το μικρότερο dataset που χρησιμοποιήθηκε έχει μέγεθος 200MB, ενώ το μεγαλύτερο ξεπερνά τα 4GB. ΔΙΑΧΕΙΡΙΣΗ ΤΡΟΧΙΩΝ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ MAPREDUCE 52