title: Migration state among jobs in Apache Flink
title: Μεταφορά κατάστασης μεταξύ εργασιών στο Apache Flink
Creators: name: Μπαικουσης Ιωαννης
Publisher: name: Technical University of Crete
Year: 2020

description: On a daily basis more and more data is produced and needs to be
processed to extract useful information. Specifically, processing data
streams is vital and requires high-performance resources to query them in
real time. Big Data processing frameworks have been developed to handle
efficient complex queries on data streams. As the amount of data expands,
the frameworks have to adapt to processing requirements, thus it is essential
to support updates and upgrades both in hardware and software
infrastructures over time. Therefore, migration mechanisms have been
developed in order to give the ability to frameworks to evolve, guaranteeing
no data losses.
In this diploma thesis we provide a migration algorithm in Apache Flink
which gives you the opportunity to manage many operator states among
different Flink jobs and submit them into another cluster with no data losses.
Additionally,it enables us to merge, split or rescale jobs in order to adapt to
processing requirements. Our algorithm is based on the State Processor API
which is provided by Flink and it is implemented on RapidMiner Studio which
gives us the ability to design workflow easily and quickly.
To validate our approach, we designed some workflows using simple
operators on RapidMiner studio and present a complete detailed cluster-
mode execution with many test-cases as merging and splitting the workflows
and migrating the state without data losses proving the correctness of our
migration algorithm.
description: Καθημερινά, τόσο και περισσότερα δεδομένα παράγονται κάνοντας την επεξεργασία αυτών μείζονος σημασίας ουτοσώστε να εξάγουμε την χρήσιμη πληροφορία. Ειδικότερα η επεξεργασία ροών δεδομένων είναι ζωτικής σημασίας και απαιτεί υψηλών επιδόσεων υπολογιστικούς πόρους ώστε να μπορέσουμε να κάνουμε επερωτήσεις σε πραγματικό χρόνο σε αυτά. Για αυτόν τον λόγο, έχουν δημιουργηθεί 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 αποδεικνύοντας έτσι την ορθότητα του αλγορίθμου μας.