Ιωάννης Μπαϊκούσης, "Μεταφορά κατάστασης μεταξύ εργασιών στο Apache Flink", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2020
https://doi.org/10.26233/heallink.tuc.87679
Καθημερινά, τόσο και περισσότερα δεδομένα παράγονται κάνοντας την επεξεργασία αυτών μείζονος σημασίας ουτοσώστε να εξάγουμε την χρήσιμη πληροφορία. Ειδικότερα η επεξεργασία ροών δεδομένων είναι ζωτικής σημασίας και απαιτεί υψηλών επιδόσεων υπολογιστικούς πόρους ώστε να μπορέσουμε να κάνουμε επερωτήσεις σε πραγματικό χρόνο σε αυτά. Για αυτόν τον λόγο, έχουν δημιουργηθεί big data frameworks τα οποία έχουν την δυνατότητα να επεξεργαστούν και να χειριστούν αποδοτικά σύνθετα επερωτήματα πάνω σε ροές δεδομένων. Όσο ο όγκος των δεδομένων μεγαλώνει τα frameworks πρέπει να προσαρμόζονται στις απαιτήσεις που χρειάζονται για την επεξεργασία τους, συνεπώς είναι σημαντικό να δέχονται τακτικά αναβαθμίσεις σε υλικό και λογισμικό. Για τον λόγο αυτό έχουν αναπτυχθεί μηχανισμοί που δίνουν την δυνατότητα να μπορούν να αναβαθμιστούν χωρίς καμία απώλεια δεδομένων.Σε αυτήν την διπλωματική εργασία παρουσιάζεται ένας αλγόριθμος μεταφοράς του state χρησιμοποιώντας το Apache Flink framework, ο οποίος μας δίνει την δυνατότητα να επεξεργαστούμε operator states ανάμεσα σε διαφορετικά Flink jobs και να μεταφέρουμε το state σε άλλα clusters χωρίς καμία απώλεια δεδομένων. Ακόμα μας δίνει την δυνατότητα να ενώσουμε, να διαχωρίσουμε ή να κάνουμε rescale τα jobs ώστε να προσαρμοστούν στις επεξεργαστικές απαιτήσεις. Ο αλγόριθμος βασίζεται στο State Processor API που παρέχεται από το Flink και είναι υλοποιημένος στο RapidMiner Studio το οποίο μας δίνει την δυνατότητα να σχεδιάσουμε εύκολα και γρήγορα workflows.Για να επικυρώσουμε την ορθότητα της υλοποίησης μας, έχουμε σχεδιάσει μερικά workflows στο RapidMiner Studio τα οποία περιέχουν απλούς τελεστές και παρουσιάζουμε μια αναλυτική περιγραφή της εκτέλεσης σε cluster-mode παίρνοντας περιπτώσεις όπως η ένωση και ο διαχωρισμός τους χωρίς να χάνονται δεδομένα καθώς και η μεταφορά του state αποδεικνύοντας έτσι την ορθότητα του αλγορίθμου μας.