Συντάχθηκε 08-03-2024 15:51
Τόπος:
Σύνδεσμος τηλεδιάσκεψης
Έναρξη: 12/03/2024 10:00
Λήξη: 12/03/2024 11:00
ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ
Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Πρόγραμμα Προπτυχιακών Σπουδών
ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ
Ουρανία Ντούνη
με θέμα
Βελτιστοποίηση της Αποδοτικότητας και του Κόστους Επεξεργασίας Ροών : TALOS- Αυτοκλιμακωτής σε επίπεδο Διεργασίας για την πλατφόρμα Apache Flink
Optimizing Stream Processing Efficiency and Cost:TALOS - Task Level Autoscaler for Apache Flink Platform
Εξεταστική Επιτροπή
Καθηγητής Ευριπίδης Πετράκης (επιβλέπων)
Επίκουρος Καθηγητής Νικόλαος Γιατράκος
Αναπληρωτής Καθηγητής Βασίλειος Σαμολαδάς
Περίληψη
Το Apache Flink είναι μια πλατφόρμα και μηχανή́ κατανεμημένης επεξεργασίας για stateful υπολογισμούς σε αόριστες και περιορισμένες ροές δεδομένων. Οι πλατφόρμες Big Data , λόγω της δυναμικής φύσης τους, συνηθώς αντιμετωπίζουν διακυμάνσεις στο φορτίο ροών δεδομένων, προκαλώντας over-provisiong ή under-provisioning πόρων λόγω της στατικής δέσμευσης πόρων. Οι κύριες υπάρχουσες λύσεις, είναι κλιμάκωση σε επίπεδο ολόκληρου του job. Αυτού́ του είδους λύσεις, δεν αποτελούν την βέλτιστη προσέγγιση, σε περιπτώσεις όπου όλα τα task, δεν βρίσκονται στην ίδια κατάσταση. Στο πλαίσιο αυτό, αποφάσισαμε να αναπτύξουμε έναν πράκτορα που διαχειρίζεται τους πόρους ενός Flink job κατά τη διάρκεια εκτέλεσης, σε επίπεδο διεργασίας. Η παρούσα διατριβή παρουσιάζει τον TALOS, έναν πρωτότυπο Autoscaler σε επίπεδο διεργασίας που σχεδιάστηκε ειδικά για το Apache Flink. Το TALOS αλλάζει δυναμικά τον παραλληλισμό των tasks σε Flink jobs ανάλογα με τις διακυμάνσεις του φορτίου δεδομένων κατά τον χρόνο εκτέλεσης. Ο TALOS είναι ένας πράκτορας που βασίζεται σε τιμές κατώφλιου (threshold based) και χρησιμοποιεί έναν συνδυασμό μετρικών, όπως το Kafka consumer lag,throughput, backpressure, buffer metrics, και idleness για να λάβει αποφάσεις για τον καινούριο παραλληλισμό των διεργασιών. Αυτός ο αλγόριθμος στοχεύει στην βελτιστοποίηση της απόδοσης του Flink Job, αλλά και στην ελαχιστοποίηση του κόστους σε περιβάλλοντα cloud, ειδικά για εφαρμογές μεγάλης διάρκειας. Αξίζει να σημειωθεί ότι το TALOS παρακολουθεί κάθε task ξεχωριστά, χωρίς να λάβει υπόψη τη ταχύτητα εξόδου και είσοδου, των upstream ή downstream tasks , αντίστοιχα. Σε αυτήν τη διατριβή, δείχνουμε ότι το μοντέλο μας επιτυγχάνει να διατηρήσει επιτυχώς την απόδοση της εφαρμογής, ενώ ελαχιστοποιεί το κόστος, παρέχοντας μία βέλτιστη αναλογία απόδοσης-κόστους σε σχέση με την υπάρχουσα εργασία στην κλιμάκωση του Flink job. Η σύγκριση υλοποιείται με το Flink Kubernetes Operator autoscaler, έναν threshold-based αλγόριθμο, όπου και οι δύο πράκτορες ελέγχονται σε απαιτητικά φορτία ροής δεδομένων.
Abstract
Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Big Data plat- forms, due to their dynamic nature, often face fluctuations in data streams workloads, leading to potential over-provisioning or under-provisioning because of static resource allocation. Most existing solutions solve the resource adaptation problem by scaling the entire Job. These solutions are sub-optimal since not all Tasks are equally stressed and need not be scaled. Therefore, we decided to develop an agent that manages the resources of a Flink job during runtime, at a Task level. This thesis presents TALOS, an innovative task autoscaler specifically designed for Apache Flink. TALOS dynamically changes the parallelism of tasks within Flink jobs in response to real-time workload fluctuations. TALOS is a threshold-based agent that utilizes a combination of metrics, such as Kafka consumer lag, throughput, backpressure, buffer metrics, and idleness to make scaling decisions. This algorithm targets not only in optimizing the performance of the Flink Job, but also in minimizing the cost in cloud environments, especially for long running applications. Notable is, that TALOS monitors each task separately, without taking into consideration output and input rate of upstream or downstream tasks, respectively. In this thesis, we prove that our model not only successfully maintains the performance of the application while minimizing infrastructure costs but can provide a better performance-to-cost ratio compared to already existing work on Flink autoscaling. Our system is compared against Flink Kubernetes Operator autoscaler, a threshold-based algorithm and both of the agents are tested in pretentious workloads.
Meeting ID: 613 764 0471
Password: 582678