Μελέτη-Ανάπτυξη AkNN αλγορίθμου σε περιβάλλον Spark

Στις μέρες μας, η επιστήμη των υπολογιστών καλείται να λύσει ένα σημαντικό πρόβλημα που έκανε την εμφάνισή του τα τελευταία χρόνια. Όπως είναι φυσικό με την εξέλιξη της τεχνολογίας ο αριθμός των συσκευών που χρησιμοποιούν τον παγκόσμιο ιστό γίνεται ολοένα και μεγαλύτερος, καθώς το κόστος μειώνετα...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Κάντας, Αριστείδης
Άλλοι συγγραφείς: Σιούτας, Σπυρίδων
Μορφή: Thesis
Γλώσσα:Greek
Έκδοση: 2020
Θέματα:
Διαθέσιμο Online:http://hdl.handle.net/10889/13167
Περιγραφή
Περίληψη:Στις μέρες μας, η επιστήμη των υπολογιστών καλείται να λύσει ένα σημαντικό πρόβλημα που έκανε την εμφάνισή του τα τελευταία χρόνια. Όπως είναι φυσικό με την εξέλιξη της τεχνολογίας ο αριθμός των συσκευών που χρησιμοποιούν τον παγκόσμιο ιστό γίνεται ολοένα και μεγαλύτερος, καθώς το κόστος μειώνεται και οι ανάγκες αυξάνονται. Φυσικό επακόλουθο αυτής της κατάστασης είναι η δημιουργία πολύ μεγάλου όγκου δεδομένων. Χρειάστηκε λοιπόν η ανάπτυξη νέας τεχνολογίας, έτσι ώστε ο μεγάλος αυτός όγκος δεδομένων να μπορεί να διαχειριστεί, παράλληλα και κατανεμημένα με σκοπό να αναλυθεί και να χρησιμοποιηθεί για την εξαγωγή πληροφοριών. Η ανάπτυξη του Cloud έπαιξε σημαντικό ρόλο στην βελτιστοποίηση της κατάστασης καθώς επιτρέπει την χρήση μεγάλης υπολογιστικής ισχύς για την επίτευξη αυτού του σκοπού. Μεγάλη πρόοδο στην ανάπτυξη τέτοιου είδους τεχνολογίας έχει κάνει η Google με την δημιουργία του MapReduce framework το οποίο είναι ένα προγραμματιστικό μοντέλο για την επεξεργασία αλλά και δημιουργία μεγάλου όγκου δεδομένων. Το MapReduce αποτέλεσε την βάση πάνω στην οποία αναπτύχθηκε ένα ακόμα μοντέλο, το Apache Spark με μεγαλύτερες δυνατότητες, κυρίως όσον αφορά την διαχείριση batch δεδομένων αλλά και δεδομένων ροής. Ο σκοπός της παρούσας διπλωματικής είναι η υλοποίηση του ΑkNN (All-k-Nearest- Neighbors) αλγορίθμου στο προγραμματιστικό περιβάλλον Apache Spark με χρήση της γλώσσας προγραμματισμού Scala. Ο ΑkNN αποτελεί αλγόριθμο κατηγοριοποίησης. Συγκεκριμένα κατηγοριοποιεί ένα στοιχείο βάση των k κοντινότερων γειτόνων του. Ακριβώς για αυτόν τον λόγο αποτελεί ισχυρό εργαλείο κυρίως για εφαρμογές που αφορούν γεωγραφικά δεδομένα. Επιπλέον η χρήση του Apache Spark επιτρέπει την ομαλή και ασφαλή παραλληλοποίηση του αλγορίθμου με σκοπό την βέλτιστη κατηγοριοποίηση μεγάλου όγκου δεδομένων. Τέλος η χρήση της γλώσσας προγραμματισμού Scala, γίνεται καθώς είναι υψηλού επιπέδου, συνδυάζει την αντικειμενοστρέφια και τον συναρτησιακό προγραμματισμό, καθώς επίσης αποτελεί την γλώσσα στην οποία είναι γραμμένο το Apache Spark.