Lambda Architecture for Distributed Stream Processing in the Fog DIPLOMARBEIT zur Erlangung des akademischen Grades Diplom-Ingenieur im Rahmendes Studiums Software Engineering &Internet Computing eingereicht von Matthias Schrabauer,BSc Matrikelnummer 01326214 an der Fakultät für Informatik der Technischen Universität Wien Betreuung: Associate Prof.Dr.-Ing. Stefan Schulte Wien, 2. Februar 2021 Matthias Schrabauer Stefan Schulte Technische UniversitätWien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.at Lambda Architecture for Distributed Stream Processing in the Fog DIPLOMA THESIS submitted in partial fulfillment of the requirements forthe degree of Diplom-Ingenieur in Software Engineering &Internet Computing by Matthias Schrabauer,BSc Registration Number 01326214 to the Faculty of Informatics at the TU Wien Advisor: Associate Prof.Dr.-Ing. Stefan Schulte Vienna, 2nd February, 2021 Matthias Schrabauer Stefan Schulte Technische UniversitätWien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.at Erklärung zur Verfassungder Arbeit Matthias Schrabauer,BSc Hiermit erkläre ich, dass ichdieseArbeit selbständig verfasst habe,dass ichdie verwen- detenQuellenund Hilfsmittel vollständig angegeben habeund dass ichdie Stellen der Arbeit–einschließlichTabellen,Karten undAbbildungen –, dieanderen Werken oder dem Internet im Wortlaut oder demSinn nach entnommensind, aufjeden Fall unter Angabeder Quelleals Entlehnung kenntlich gemacht habe. Wien, 2. Februar 2021 Matthias Schrabauer v Danksagung An dieser Stelle möchte ichmichbei allen Personen bedanken, die michwährendder Erstellung dieserArbeitunterstütztund motivierthaben. Besonders möchte ichmichbei Herrn Associate Prof. Dr.-Ing. Stefan Schulte bedanken, der diese Arbeitbetreutund begutachtet hat.Für die zahlreichen, hilfreichen Anregungen und die konstruktiveKritik beider Erstellung dieser Arbeitmöchteich michherzlich bedanken. Ebenfalls möchte ichmichbei meinenMitstudenten und Mitstudentinnenbedanken, die mir immer hilfsbereit zurSeite standen, wenn icheine zweite Meinung benötigte oder ich technischeDetails diskutierenwollte. Abschließend möchteich michbei meinenEltern bedanken, die mir durchihre Unterstüt- zung meinStudium erst ermöglichthaben. vii Acknowledgements Iwanttouse this opportunity to thank all thepeoplewho supported and motivatedme duringthe writing of this work. Especially,Iwant to thank my advisor Associate Prof. Dr.-Ing. Stefan Schulte who supervised andreviewed this thesis. Iamespeciallythankfulfor hisnumeroushelpful suggestions and theconstructive criticism he offered me throughoutthe writing of this thesis. Iwouldalsoliketothank my fellowstudents, who have alwaysbeen helpfulwhen I needed asecondopinion or someone to discuss technical details. Finally,Iwould liketothank my parents, whosesupport made my studies possible in the first place. ix Kurzfassung Der digitale Wandelführt zu einem stetig wachsendenDatenaufkommen. Mitdem Wachstum von“Big Data”steigtder Bedarf, diese großenDatenmengen zu analysieren und nutzbringend zu verwenden (bezeichnet als Stapelverarbeitung). Dazu habensich Programmiermodelle, Frameworks, Plattformen undTools wiedas Apache Hadoop- Ökosystem und das MapReduce-Programmiermodell etabliert.Solche Systeme sindfür die Stapelverarbeitung konzipiert und eignen sichdahernicht für die Verarbeitung vonDatenströmen.Mit dem Aufkommenvon Anwendungsszenarien wieSmartCities und autonomenFahrensteigtder Bedarf,kontinuierliche Datenströme in Echtzeitzu verarbeiten. Zu diesem ZweckwerdenFrameworks zur Datenstromverarbeitung wie Apache Storm oder ApacheFlink eingesetzt.AllerdingsarbeitensolcheFrameworks in der Regel in derCloud innerhalb eines lokalen Clustersmit geringer Latenz. Für Internet of Things (IoT) Anwendungen führt dieser zentralisierte Ansatz oft zu hohen Latenzen,daDatenströme (z.B.Sensordaten)erst in dieCloud geschicktwerdenmüssen, um sie zu verarbeiten. Um dieses Problem zu adressieren undIoT Daten effizientzu verarbeiten, reicht die Cloud allein nichtmehraus. Es gibteinenzunehmenden Trend, die Verarbeitung vonDatennäheranden Rand desNetzwerkszuverlagern,wodie Daten erzeugtund gespeichertwerden. Um sowohl die Vorteile derStapel-als auchder Datenstromverarbeitung zu nutzen, wurde die Lambda-Architektur eingeführt.Diese Architekturbasiert auf drei Schichten, dieesermöglichen,großeMengen an historischen Daten effizient zu verarbeiten(“Batch-Schicht”und “Serving-Schicht”) undgleichzeitig kontinuierliche DatenströmeninEchtzeitzuprozessieren (“Speed-Schicht”). Zieldieser Arbeitist es, einen Lösungsansatzzuentwerfenund zu implementieren, der sowohl die Lambda-Architektur als auchFog-Computingnutzt, um Datenströme in Echtzeit zu verarbeiten. Die Evaluierung konzentriert sichdarauf,wie gut Fog-basierteDatenstromverarbeitungs- TopologienimVergleichzueinemtraditionellen Cloud-Ansatzabschneiden.Für eine quantitative Bewertung werdengängige Metriken aus demBereichder Datenverarbeitung verwendet (Latenz, Round-Trip-Zeitvon Datenpaketen). Die Evaluierungdes Lösungs- ansatzes zeigt, dassder Einsatzvon verteilter Datenstromverarbeitung in der Fogeine vielversprechende Alternative zur traditionellen Datenverarbeitung in der Cloud sein kann. Insgesamtzeigen dieErgebnisse eine Verringerung derRound-Trip-Zeiten. Insbesondere, wenn die Latenz zurCloud über 50 ms liegt oder dieDatenpaketgröße recht groß ist. xi Abstract The digital transformation is leading to aconstantlyincreasingvolumeofdata. With the growthofbig data,there is arising demandfor analyzingand making use of those largepiles of data(referredtoasbatch processing). To do that, programming models, frameworks, platforms, and tools suchasthe Apache Hadoop ecosystem and the MapReduceprogramming modelhavebeenestablished. Suchsystemshavebeendesigned forbatch processing and are thereforenot suitablefor (real-time) stream processing. With application scenarioslikesmartcitiesand autonomousdrivingemerging, thereisa growing need to process continuous streams of data close to real-time. Forthis purpose, distributed stream processing frameworkssuchasApacheStormorApacheFlink are used to analyze data streams. However, such frameworks usuallyoperate in the cloud within alocal cluster with lowlatency.For Internet of Things (IoT) applications,this centralizedapproachoften leads to highlatency, since data streams (e.g.,sensor data) must be senttothe cloudfirst, in order to process it.Toaddress this issue and to efficiently processIoT dataonalarge scale, thecloud alone is no longer sufficient. There is an increasingtrend to push the processing of datacloser to theedgeofthe network, where thedataisgenerated and stored.Inorder to takeadvantage of both batchand stream processing,the lambdaarchitecture design patternhas been introduced. This architectural styleisbasedonthree layers, whichallowtoefficientlyprocess massive volumesofhistoricaldata (batchand serving layer) while simultaneously using stream processing to provide areal-time analysis of continuous datastreams (speed layer). Thegoal of this work is to design and implementasolution approach, which makes use of thelambdaarchitecture as well as fog computingtoprocess data streams in real-time. The evaluation focuses on howwellfog-basedstreamprocessing topologiesperform compared to atraditionalcloud approach. Common metrics in the field of dataprocessing are used foraquantitativeevaluation(latency,round-triptime of datapackets). The evaluation of thesolution approachshows thatusing distributedstream processing in the fogcan be averypromising alternativecompared to traditional dataprocessing in the cloud. Overall, the resultsshowadecreaseinthe round-trip times. Especially if the latency to the cloud is over 50 ms or thedata packetsize is quite large. xiii Contents Kurzfassung xi Abstract xiii Contents xv 1Introduction1 1.1 Motivation and Problem Statement. .................... 1 1.2 Aim of theWork ..............................2 1.3 Methodology and Approach........................3 1.4 Structure ..................................5 2Background 7 2.1 InternetofThings............................. 7 2.2 FogComputing ................................11 2.3 BigDataAnalytics............................. 15 2.4 LambdaArchitecture ............................20 3Related Work 25 3.1 DistributedStream Processing for theIoT and FogComputing ....25 3.2 LambdaArchitecture forDistributedStreamProcessing ........35 3.3 FogComputing Infrastructure ....................... 37 3.4 Conclusion ................................. 38 4RequirementsAnalysis and Design 41 4.1 Requirements .................................41 4.2 Architecture ................................. 44 5Implementation 53 5.1 Infrastructure Setup............................53 5.2 DevelopmentOperations .......................... 56 5.3 Implementation of theLambdaArchitecture ............... 58 5.4 Implementation of Non-Functional Requirements ............ 62 5.5 Limitations .................................63 xv 6Evaluation 65 6.1 DataSets.................................. 65 6.2 Motivational Scenario........................... 66 6.3 Testbed................................... 67 6.4 Topology..................................69 6.5 Benchmarks .................................. 71 6.6 Summary.................................. 83 7Conclusion and Future Work 87 7.1 Discussion ..................................87 7.2 Future Work ................................89 ListofFigures 91 List of Tables93 Acronyms 95 Bibliography 97 CHAPTER 1 Introduction 1.1 Motivation and Problem Statement With thegrowth of bigdata, there is arising demandfor
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages124 Page
-
File Size-