ebook img

Graphen im Big Data Umfeld - Experimenteller Vergleich von Apache Flink und Apache Spark PDF

72 Pages·2017·1.88 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Graphen im Big Data Umfeld - Experimenteller Vergleich von Apache Flink und Apache Spark

Bachelorarbeit Marc Kaepke Graphen im Big Data Umfeld - Experimenteller Vergleich von Apache Flink und Apache Spark FakultätTechnikundInformatik FacultyofEngineeringandComputerScience StudiendepartmentInformatik DepartmentofComputerScience Marc Kaepke Graphen im Big Data Umfeld - Experimenteller Vergleich von Apache Flink und Apache Spark BachelorarbeiteingereichtimRahmenderBachelorprüfung imStudiengangBachelorofScienceAngewandteInformatik amDepartmentInformatik derFakultätTechnikundInformatik derHochschulefürAngewandteWissenschaftenHamburg BetreuenderPrüfer:Prof.Dr.OlafZukunft Zweitgutachter:Prof.Dr.UlrikeSteffens Eingereichtam:11.September2017 MarcKaepke ThemaderArbeit GraphenimBigDataUmfeld-ExperimentellerVergleichvonApacheFlinkundApacheSpark Stichworte ApacheFlink,ApacheSpark,Graphen,verteilteGraphverarbeitung,Gelly,GraphX,BigData, Experimente,Semi-Clustering,PageRank,Implementierung Kurzzusammenfassung Grapheneignensichideal,umRelationenzwischenObjektenabzubilden.Allerdingsbenötigen dieBigGraphsspezielleSysteme,umdiesezuverarbeitenundzuanalysieren.DieOpenSource FrameworksApacheFlinkundApacheSparkstellenBibliothekenfürverteilteGraphverar- beitungenbereit.ImRahmendieserThesissollverglichenwerden,welchesFrameworksich besserfürdiesenZweckeignet.MehrereExperimentezeigen,dassGelly(Flink)leichteVorteile gegenüberGraph(Spark)bietetunddassdieSystemeunterschiedlichskalieren. MarcKaepke Titleofthepaper GraphsinBigData-experimentalcomparisonofApacheFlinkandApacheSpark Keywords ApacheFlink,ApacheSpark,graphs,distributedgraphprocessing,Gelly,GraphX,BigData, experiments,Semi-Clustering,PageRank,implementation Abstract Graphs are ideal for mapping relations between objects. However, the Big Graphs require specialsystemstoprocessandanalyzethem. TheopensourceframeworksApacheFlinkand Apache Spark provide libraries for distributed graph processing. Within the framework of thisbachelor’sthesisitisintendedtocomparewhichframeworkismoreconvenientforthis purpose. SeveralexperimentsshowthatGelly(ApacheFlink)offersslightadvantagesover GraphX(ApacheSpark)andthatthesystemsscaledifferently. Inhaltsverzeichnis 1 Einleitung 1 2 ApacheSpark 3 2.1 Ökosystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 BibliothekenundAPIs . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2 Cluster-ManagerundDatenquellen . . . . . . . . . . . . . . . . . . . . 5 2.2 ResilientDistributedDataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 GraphX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.1 Graph-Partitionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.2 PregelAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 ApacheFlink 10 3.1 Ökosystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 StreamingDataflowModell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2.1 DataflowGraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.2 Spezialfall:DataSetAPI . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 BatchIterationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Gelly 18 4.1 RepräsentationvonGraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Modifikation,TransformationundNachbarschaft . . . . . . . . . . . . . . . . 19 4.3 VerteilteGraphverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3.1 vertex-centric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3.2 scatter-gather . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3.3 gather-sum-apply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3.4 GellyspezifischeModell-Konfiguration . . . . . . . . . . . . . . . . . . 25 4.3.5 GegenüberstellungderModelle . . . . . . . . . . . . . . . . . . . . . . 27 4.4 BibliothekundAlgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5 ErweiterungderGellyBibliothek 30 5.1 AllgemeineszumSemi-Clustering . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2 Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.3 UmsetzunginGelly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3.1 Vorverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3.2 Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 iv Inhaltsverzeichnis 6 Experimente 36 6.1 AufbauderExperimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.1.1 Hypothesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.1.2 Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.1.3 Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.1.4 Algorithmen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.2 ExperimentelleDurchführung . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2.1 Hypothese1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.2.2 Hypothese2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.2.3 Hypothese3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.2.4 Hypothese4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.2.5 Hypothese5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.3 KorrektheitderExperimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.4 AuswertungderExperimente . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7 ZusammenfassungundAusblick 55 7.1 Flinkvs.Spark-Gegenüberstellung . . . . . . . . . . . . . . . . . . . . . . . . 55 7.1.1 Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.1.2 Speichermanagement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 7.1.3 Graph-Partitionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 7.1.4 GraphProgrammiermodelle . . . . . . . . . . . . . . . . . . . . . . . . 57 7.2 FazitundAusblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Literaturverzeichnis 59 v Abbildungsverzeichnis 2.1 ApacheSparkKomponentenübersicht . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 edge-cutvs.vertex-cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 GraphX-tabellarischeRepräsentationvomvertex-cut . . . . . . . . . . . . . . 8 2.4 BSP-AusführungmitsynchronisiertemSuperstep . . . . . . . . . . . . . . . . 9 3.1 ApacheFlinkKomponetenübersicht . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 ApacheFlinkArchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 StreamingDataflowProgrammunterFlink . . . . . . . . . . . . . . . . . . . . 14 3.4 SchemenhafteDarstellungeinesDirectedAcyclicGraph . . . . . . . . . . . . 15 3.5 Iterations-OperatoreninApacheFlink . . . . . . . . . . . . . . . . . . . . . . 17 4.1 Beispieleinervertex-centricIteration . . . . . . . . . . . . . . . . . . . . . . . 22 4.2 Beispieleinerscatter-gatherIteration . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Beispieleinergather-sum-applyIteration . . . . . . . . . . . . . . . . . . . . . 24 5.1 BeispielergebnisvomSemi-Clustering . . . . . . . . . . . . . . . . . . . . . . . 31 5.2 VorbereitungsschrittebeimSemi-Clustering . . . . . . . . . . . . . . . . . . . 34 5.3 AusschnittvomSemi-ClusteringKlassendiagramm . . . . . . . . . . . . . . . 35 6.1 Hypothese1-Ergebnisvisualisierung . . . . . . . . . . . . . . . . . . . . . . . 42 6.2 Hypothese2-ErgebnisvisualisierungvonPageRank(10xGraphskalierung) . . 45 6.3 Hypothese2-ErgebnisvisualisierungvonPageRank(2xGraphskalierung) . . 46 6.4 Hypothese3-ErgebnisvisualisierungvomPageRank . . . . . . . . . . . . . . 47 6.5 Hypothese3-ErgebnisvisualisierungvomSemi-Clustering . . . . . . . . . . . 48 6.6 Hypothese4-VisualisierungdesSpeicherverbrauchs . . . . . . . . . . . . . . 50 6.7 Hypothese5-Ergebnisvisualisierung . . . . . . . . . . . . . . . . . . . . . . . 51 7.1 FlinkundSparkimKontext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7.2 SchemaderIterationenunterApacheFlinkundApacheSpark . . . . . . . . . 56 vi Listings 4.1 Gelly-Knotenerzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Gelly-Kanteerzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Gelly-AusschnitteinerGraphanalyse. . . . . . . . . . . . . . . . . . . . . . . 28 vii Tabellenverzeichnis 4.1 GraphXundGellyimÜberblick . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2 GellyKonfigurationsparameterderGraphProgrammiermodelle . . . . . . . . 25 4.3 Vergleichvonvertex-centric,scatter-gatherundGSAModell . . . . . . . . . . 27 6.1 AngepassteKonfigurationsparameterfürApacheFlinkundApacheSpark . . 41 6.2 Hypothese1-Laufzeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.3 Hypothese2-Laufzeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.4 LaufzeitverbesserungbeiunterschiedlichenDatentypen . . . . . . . . . . . . . 53 viii 1 Einleitung Graphen,auchNetzwerkegenannt,gewinnenfortlaufendanWichtigkeitimBigDataUmfeld und sind allgegenwärtig. Jedes soziale Netzwerk, wie Facebook oder Instagram, weist um- fangreicheGraphstrukturenauf.Ime-CommerceBereichlassensichKaufempfehlungenauf BasisvonGraphenberechnen.EbensosindGrapheninderOffline-WeltbeimAnalysierenoder KoordinierenvonEnergie-undTransportnetzwerkenvorzufinden.AberauchinderMedizin zurErforschungvonKrebstumorenwirdaufGraphstrukturenzurückgegriffen,umTeilnetze miteinererheblichenAnzahlanmutiertenPatientenaufzuspüren[vgl.Ste17]. GraphenrepräsentierendabeiInformationenauseinerspezifischenDomäne.DieKnoten spiegelnbeliebigeObjekte,wiePersonenoderFlughäfen,widerunddieKantensymbolisieren RelationenzwischenObjekten,wieFreundschaftenoderFlugverbindungen.DurchAttribute andenKantenlassensichzusätzlicheAngabenzurRelationfesthalten,wiebeispielsweiseder BeginneinerFreundschaftoderdieDauerderFlugreise. UmgroßeGraphenmöglichsteffizientverarbeitenundanschließendanalysierenzukönnen, sindCluster-Systemenotwendig.ApacheFlinkundApacheSparksindmoderneOpen-Source Frameworks,diekonzipiertwurden,umgroßeundverteilteDatenmengenzuverarbeiten.Die SchwerpunktebeiderFrameworksliegenimklassischenBatch-Processingunddemneueren Stream-Processing.ZusätzlichbeinhaltenbeideSystemespezielleBibliothekenundAPIszur VerarbeitungundAnalysevonGraphen. Ziel dieser Thesis ist, festzustellen, inwieweit sich Apache Flink besser oder schlechter zur Graphverarbeitung eignet als Apache Spark. Die Bewertungsgrundlage hierfür bilden Experimente,indenenGraph-AlgorithmenmitunterschiedlichenDatenausgeführtwerden. In den Experimenten wird die Laufzeit der Algorithmen ermittelt, die diese benötigen, um unterschiedlicheGraphausdehnungenzuverarbeiten.ZusätzlichwerdendieLaufzeitenbei einerhorizontalenSkalierungdesClustersgemessen. In den beiden nachfolgenden Kapiteln werden zunächst die Frameworks Apache Spark (2)undApacheFlink(3)vorgestelltundaufeinigeBesonderheiteneingegangen.Daszweite KapitelbehandeltzusätzlichdieGraphBibliothekvonApacheSpark. 1 1 Einleitung Im 4. Kapitel liegt der Fokus auf Gelly und dessen Operatoren zur Graphverarbeitung. Ein Abschnitt befasst sich unter anderem mit den Funktionsweisen der unterschiedlichen ProgrammiermodellefürGraphen. AneinempraktischenBeispielwirddieGellyBibliothekim5.KapitelumeinenAlgorithmus erweitert.DerimplementierteSemi-ClusteringAlgorithmusdientderVergleichbarkeitbeider Frameworks.DasKapitelbeschreibtdasKonzeptdesAlgorithmusundwiediesermitHilfe vonApacheFlinkumgesetztwird. Im 6. Kapitel finden die Experimente statt. Hierfür werden zunächst der Aufbau und die Durchführungbeschrieben,umanschließendeinResümeederErgebnissezuziehen.DieExpe- rimenteorientierensichdabeianaufgestelltenHypothesen,dieaufGrundlagedervorherigen Theoriebasisdefiniertsind. DasletzteKapitel(7)bieteteinenkompaktenÜberblickderbeidenFrameworksbezüglich einigerAspektezurGraphverarbeitung.AufBasisderErgebnisseausdenExperimentenerfolgt zumSchlusseinFazit,außerdemwirdeseinenAusblickfürweiterführendeExperimentein diesemBereichgeben. 2

Description:
die Big Graphs spezielle Systeme, um diese zu verarbeiten und zu analysieren. Die Open Source gegenüber Graph (Spark) bietet und dass die Systeme unterschiedlich skalieren. Marc Kaepke. Title of the paper Graphs are ideal for mapping relations between objects. However, the Big Graphs
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.