Institutional Repository [SANDBOX]
Technical University of Crete
EN  |  EL

Search

Browse

My Space

Supporting elasticity in Flink

Giannakopoulos Panagiotis

Simple record


URIhttp://purl.tuc.gr/dl/dias/AD7EDF34-0E0B-45D1-813C-0EB4C579DE27-
Identifierhttps://doi.org/10.26233/heallink.tuc.86993-
Languageen-
Extent81 pagesen
TitleSupporting elasticity in Flinken
TitleΥποστήριξη ελαστικότητας υποδομής FLINKel
CreatorGiannakopoulos Panagiotisen
CreatorΓιαννακοπουλος Παναγιωτηςel
Contributor [Thesis Supervisor]Petrakis Evripidisen
Contributor [Thesis Supervisor]Πετρακης Ευριπιδηςel
Contributor [Committee Member]Zervakis Michailen
Contributor [Committee Member]Ζερβακης Μιχαηλel
Contributor [Committee Member]Deligiannakis Antoniosen
Contributor [Committee Member]Δεληγιαννακης Αντωνιοςel
PublisherΠολυτεχνείο Κρήτηςel
PublisherTechnical University of Creteen
Academic UnitΠολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώνel
Content SummaryApache Flink is an open source framework that supports high-throughput, low latency data processing, as well as event processing. Flink executes arbitrary dataflow programs in a data-parallel and pipelined manner. At a basic level, Flink programs consist of streams and operators which apply transformations on data. The number of operator subtasks correspond to the parallelism of that particular operator and regulates the allocated resources for the execution of the operator. As a result, it is possible to set the desirable overall parallelism of the program by adjusting accordingly the parallelism of each operator. Although, Flink currently lacks the ability to automatically adjust to the resource needs of a running program and therefore it cannot adapt the program to varying workload. Therefore, such an adjustion can only be done with human intervention. The lack of dynamic resource allocation could lead to performance drop or to allocated resources remaining unused for long time (in the case of over or under utilization of resources respectively). In order to address this issue, we propose a statistical machine learning methodology which is implemented as a software agent that runs in parallel with Flink. The agent monitors the running program and adjusts the allocated resources to the incoming workload. The agent acts proactively by predicting the forthcoming workload in order to maintain the performance of the application within acceptable limits (i.e. defined in the form of SLAs) while minimizing the utilization of resources. This is achieved by adjusting (i.e. scaling-up or down) the computational resources to the actual and future needs of the application. To do so, a statistical machine learning model is used with online training in order to approach an optimal policy for scaling. As a proof of concept, we designed and implemented an infrastructure on the cloud which assess the efficiency of such scaling method in a Flink cluster. We run an exhaustive set of experiments using synthetic and real workloads available on the internet. The experimental results are a good support to our claims of efficiency.en
Content SummaryΤο Apache Flink αποτελεί μια πλατφόρμα ανοιχτού κώδικα που υποστηρίζει επεξεργασία δεδομένων με υψηλή απόδοση, χαμηλό λανθάνοντα χρόνο (latency), καθώς και επεξεργασία συμβάντων. Τα προγράμματα στο Flink αποτελούνται από μια σειρά τελεστών που εφαρμόζουν μετασχηματισμούς σε δεδομένα. Ο κάθε τελεστής μπορεί να εκτελείται με παράλληλο τρόπο, ρυθμίζοντας ετσι τους τους πόρους που διατίθενται για την εκτέλεση του. Με αυτόν τον τρόπο, είναι δυνατόν να ρυθμιστεί ο επιθυμητός συνολικός παραλληλισμός του προγράμματος προσαρμόζοντας ανάλογα τον παραλληλισμό κάθε τελεστή. Ωστόσο, το Flink αυτή την στιγμή δεν διαθέτει τη δυνατότητα αυτόματης προσαρμογής των δεσμευμένων πόρων ενος τρέχοντος προγράμματος και ως εκ τούτου δεν μπορεί να προσαρμόσει το πρόγραμμα σε μεταβαλλόμενο ρυθμό εισροής δεδομένων. Επομένως, μια τέτοια προσαρμογή μπορεί να γίνει μόνο χειροκίνητα με ανθρώπινη παρέμβαση. Η έλλειψη δυναμικής κατανομής πόρων θα μπορούσε να οδηγήσει σε μείωση της απόδοσης σε περίπτωση που η εφαρμογή δεν διαθέτει αρκετούς πόρους για να εξυπηρετήσει το φορτίο της. Από την άλλη πλευρά, υπάρχει το ενδεχόμενο οι δεσμευμένοι πόροι να είναι περισσότεροι από όσοι χρειάζονται με αποτέλεσμα ορισμένοι πόροι να παραμείνουν αχρησιμοποίητοι για μεγάλο χρονικό διάστημα. Προκειμένου να αντιμετωπιστεί αυτό το ζήτημα, προτείνουμε μια μεθοδολογία μηχανικής μάθησης η οποία υλοποιείται ως πράκτορας λογισμικού που λειτουργεί παράλληλα με το Flink. Ο πράκτορας παρακολουθεί το τρέχον πρόγραμμα και προσαρμόζει τους πόρους που διατίθενται στην εφαρμογή ανάλογα τον εισερχόμενο ρυθμό δεδομένων. Ο πράκτορας ενεργεί προληπτικά προβλέποντας τον επερχόμενο φόρτο προκειμένου να διατηρήσει την απόδοση της εφαρμογής εντός αποδεκτών ορίων (δηλ. όπως ορίζεται με την μορφή SLAs) με όσο τον δυνατόν λιγότερους πόρους. Αυτό επιτυγχάνεται προσαρμόζοντας τους υπολογιστικούς πόρους (δηλ. εισάγοντας ή αφαιρώντας πόρους) στις πραγματικές και μελλοντικές ανάγκες της εφαρμογής. Για να πραγματοποιηθεί αυτό, χρησιμοποιείται ένα μοντέλο μηχανικής μάθησης το οποίο εκπαιδεύεται online προκειμένου να προσεγγίσει μια βέλτιστη πολιτική για την αυτόματη προσαρμογή των πόρων. Προκειμένου να αξιολογήσουμε την αποτελεσματικότητα μιας τέτοιας μεθόδου προσαρμογής εφαρμογών του Flink, σχεδιάσαμε και υλοποιήσαμε μια υποδομή στο υπολογιστικό νέφος (cloud) όπου και πραγματοποιήσαμε πειράματα. el
Type of ItemΔιπλωματική Εργασίαel
Type of ItemDiploma Worken
Licensehttp://creativecommons.org/licenses/by/4.0/en
Date of Item2020-10-13-
Date of Publication2020-
SubjectFlinken
SubjectΔυναμική δέσμευση πόρωνel
SubjectDynamic scaling of resourcesen
SubjectΕλαστικότηταel
SubjectElasticityen
Bibliographic CitationPanagiotis Giannakopoulos, "Supporting elasticity in Flink", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2020en
Bibliographic CitationΠαναγιώτης Γιαννακόπουλος, "Υποστήριξη ελαστικότητας υποδομής FLINK", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2020el

Available Files

Services

Statistics