Περίληψη: | Στις μέρες μας, η επιστήμη των υπολογιστών καλείται να λύσει ένα σημαντικό πρόβλημα που
έκανε την εμφάνισή του τα τελευταία χρόνια. Όπως είναι φυσικό με την εξέλιξη της
τεχνολογίας ο αριθμός των συσκευών που χρησιμοποιούν τον παγκόσμιο ιστό γίνεται ολοένα
και μεγαλύτερος, καθώς το κόστος μειώνεται και οι ανάγκες αυξάνονται. Φυσικό επακόλουθο
αυτής της κατάστασης είναι η δημιουργία πολύ μεγάλου όγκου δεδομένων. Χρειάστηκε λοιπόν
η ανάπτυξη νέας τεχνολογίας, έτσι ώστε ο μεγάλος αυτός όγκος δεδομένων να μπορεί να
διαχειριστεί, παράλληλα και κατανεμημένα με σκοπό να αναλυθεί και να χρησιμοποιηθεί για
την εξαγωγή πληροφοριών. Η ανάπτυξη του Cloud έπαιξε σημαντικό ρόλο στην
βελτιστοποίηση της κατάστασης καθώς επιτρέπει την χρήση μεγάλης υπολογιστικής ισχύς για
την επίτευξη αυτού του σκοπού.
Μεγάλη πρόοδο στην ανάπτυξη τέτοιου είδους τεχνολογίας έχει κάνει η Google με την
δημιουργία του MapReduce framework το οποίο είναι ένα προγραμματιστικό μοντέλο για την
επεξεργασία αλλά και δημιουργία μεγάλου όγκου δεδομένων. Το MapReduce αποτέλεσε την
βάση πάνω στην οποία αναπτύχθηκε ένα ακόμα μοντέλο, το Apache Spark με μεγαλύτερες
δυνατότητες, κυρίως όσον αφορά την διαχείριση batch δεδομένων αλλά και δεδομένων ροής.
Ο σκοπός της παρούσας διπλωματικής είναι η υλοποίηση του ΑkNN (All-k-Nearest-
Neighbors) αλγορίθμου στο προγραμματιστικό περιβάλλον Apache Spark με χρήση της
γλώσσας προγραμματισμού Scala. Ο ΑkNN αποτελεί αλγόριθμο κατηγοριοποίησης.
Συγκεκριμένα κατηγοριοποιεί ένα στοιχείο βάση των k κοντινότερων γειτόνων του. Ακριβώς
για αυτόν τον λόγο αποτελεί ισχυρό εργαλείο κυρίως για εφαρμογές που αφορούν γεωγραφικά
δεδομένα. Επιπλέον η χρήση του Apache Spark επιτρέπει την ομαλή και ασφαλή
παραλληλοποίηση του αλγορίθμου με σκοπό την βέλτιστη κατηγοριοποίηση μεγάλου όγκου
δεδομένων. Τέλος η χρήση της γλώσσας προγραμματισμού Scala, γίνεται καθώς είναι υψηλού
επιπέδου, συνδυάζει την αντικειμενοστρέφια και τον συναρτησιακό προγραμματισμό, καθώς
επίσης αποτελεί την γλώσσα στην οποία είναι γραμμένο το Apache Spark.
|