Installation und Anwendung einer Support Vector Machine: Hadoop MapReduce erläutert


Bachelorarbeit, 2016

60 Seiten, Note: 1,3


Leseprobe

Inhaltsverzeichnis

Abbildungsverzeichnis

Tabellenverzeichnis

Verzeichnis der Listings

Abkürzungsverzeichnis

1 Einleitung
1.1 Big Data
1.2 Zielsetzung
1.3 Methodik
1.4 Aufbau der Arbeit

2 Grundlagen
2.1 Hadoop
2.2 YARN
2.3 MapReduce
2.4 Hadoop Distributed File System
2.5 Support Vector Machine
2.6 Statistiksoftware und Programmiersprache R

3 Strukturierte Qualitätsberichte von Krankenhäusern
3.1 Grundlagen der strukturierten Qualitätsberichte
3.2 Aufbau der strukturierten Qualitätsberichte

4 Installation und Administration von Hadoop
4.1 Setup
4.2 Installation und Einrichtung des Ubuntu-Servers
4.3 Installation und Einrichtung von Hadoop
4.4 Test der Hadoop Installation

5 Durchführung der Analyse
5.1 Vorüberlegungen
5.2 Analyseverfahren
5.2.1 k-Means Clustering
5.2.2 Regressionsanalyse mit einer Support Vector Machine
5.3 Anforderungen an die Programme
5.4 Auswertungsergebnisse
5.4.1 Durchführung k-Means Clustering in R
5.4.2 Durchführung der Support Vector Regression in R

6 Diskussion und Zusammenfassung

7 Fazit und Ausblick
7.1 Fazit der Analyse von strukturierten Qualitätsberichten
7.2 Ausblick

Literaturverzeichnis

Abbildungsverzeichnis

Abbildung 1: Das 3-V Modell nach Doug Laney

Abbildung 2: Die vier Vs von Big Data

Abbildung 3: Abgrenzung der Datengruppen

Abbildung 4: Lineare Skalierbarkeit des Hadoop Frameworks

Abbildung 5: Interaktion Client und Hadoop Cluster

Abbildung 6: Hierarchische Struktur eines Hadoop Clusters

Abbildung 7: Ablauf eines MapReduce Programms

Abbildung 8: Architektur und Funktionsweise des HDFS

Abbildung 9: Datensätze zu erfolgreichen und nicht erfolgreichen Operationen

Abbildung 10: Verschiedene berechnete mögliche Trennlinien zwischen den Daten

Abbildung 11: Durch die SVM berechnete Hyperebene

Abbildung 12: Ausschnitt eines Qualitätsberichts

Abbildung 13: Setup für den Aufbau eines Hadoop-Clusters

Abbildung 14: Clustering nach k-Means

Abbildung 15: Regressionsgerade und -linie einer SVR

Abbildung 16: Prozess der Datenextraktion

Abbildung 17: Schematische Darstellung der Hierarchie der XML Dokumente

Abbildung 18: Auswertungsergebnis aus MapReduce und Verarbeitung in R

Abbildung 19: Support Vector Regression der diagnostizierten Rückenleiden

Tabellenverzeichnis

Tabelle 1: Übersicht über die drei Dimensionen der Qualität

Tabelle 2: Übersicht über das Setup

Tabelle 3: Möglichkeiten einer Regressionsanalyse mit Beispielen

Tabelle 4: Übersicht der Hadoop Jobs

Tabelle 5: Komponenten des Hadoop-Ecosystems

Verzeichnis der Listings

Listing 1: Zwei XML Dateien, die jeweils ein Buch beschreiben

Listing 2: Pseudo-Code einer Map-Funktion für das Programm WordCount

Listing 3: Pseudo-Code einer Reduce-Funktion für das Programm WordCount

Listing 4: Installation des JDK unter Ubuntu Linux mithilfe von apt-get

Listing 5: Einrichten des SSH-Zugangs für den Benutzer hduser

Listing 6: Umgebungsvariablen für Hadoop 2.7.2

Listing 7: Manuelles Starten der einzelnen Hadoop Dienste

Listing 8: Main-Methode des Programms WordCount

Listing 9: Innere Klasse für die Map-Phase

Listing 10: Codeausschnitt für den Reducer des Testprogramms

Listing 11: Aufbau eines Drivers am Beispiel AnalyzeDiagnosePlzDriver.class

Listing 12: Ermittlung aller Kindknoten für die Analyse der ICD_10 Codes

Listing 13: Ausschnitt der Konfigurationsdatei pom.xml eines Maven-Projekts

Listing 14: Ausschnitt des Ergebnisses der Auswertung AnalyzeBfKhQuote.jar

Listing 15: R-Skript k-Means Clustering

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

1 Einleitung

1.1 Big Data

Der Begriff Big Data ist ein Synonym für die ansteigenden und täglich generierten Da­tenmengen, die gespeichert und verwaltet werden müssen. Aus diesen Daten lassen sich neue Informationen und Wissen ableiten. Da es für den Begriff Big Data keine eindeutige Definition gibt, wird der Begriff sehr häufig beschrieben als unstrukturierte, in großen Mengen und in verschiedenen Formaten vorliegende Daten, die in die festen Strukturen der relationalen Datenbanksysteme (RDBS) nur schwer übernommen werden können. Wird der Begriff Big Data in der Internetsuchmaschine Google eingegeben, werden ca. 431.000.000 Suchergebnisse in 0,48 Sekunden zurückgegeben.[1]

Die unumstrittene Definition von Big Data wurde durch das Unternehmen Gartner im Jahre 2011 entwickelt. Gartner stützt sich in der Definition auf das 3-V Modell, dessen Entstehung auf dem Forschungsbericht '3D Data Management: Controlling Data Vo­lume, Velocity, and Variety' von Doug Laney aus dem Jahre 2001 basiert. Das soge­nannte 3-V Modell nach Doug Laney wird in Abbildung 1 veranschaulicht.[2]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Das 3-V Modell nach Doug Laney.[3]

Wie in der Abbildung 1 dargestellt, besteht Big Data aus den drei Dimensionen:

- Die Dimension Velocity (engl. Geschwindigkeit) beschreibt die ansteigende Ge­schwindigkeit, mit der Daten erzeugt werden.
- Variety (engl. Vielfalt) zeigt die steigende Vielfalt der generierten Daten an und
- Volume (engl. Volumen) stellt den steigenden Speicherbedarf bzw. das Volumen der Daten dar.[4]

Das Unternehmen IBM erweiterte das 3-V Modell schließlich um die vierte Dimension Veracity (engl. Wahrhaftigkeit). Je mehr Daten gesammelt werden, desto höher ist die Wahrscheinlichkeit, dass Daten falsch bzw. verfälscht werden, unvollständig sind oder nur wenig Informationsgehalt haben. Diese Daten zu bereinigen und von den vollständi­gen Daten zu filtern, ist mit großem Aufwand verbunden. Die folgende Abbildung 2 zeigt die vier Vs von Big Data in der Übersicht.[5]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2: Die vier Vs von Big Data.[6]

Ein weiterer Aspekt von Big Data ist der Verarbeitungsaufwand. Pavlo Baron schreibt in seinem Buch „Ich hatte z.B. einen Fall, bei dem es um lächerliche Datenmengen ging, die problemlos auf einen USB-Stick gepasst hätten. Man erwartete allerdings simultane Zu­griffszahlen im zweifachen Millionenbereich pro Sekunde [...] das ist definitiv Big [...]“[7] Aus dieser Perspektive betrachtet man nicht nur die Größe der Daten, sondern auch ihre Komplexität der Aufbereitung und Informationsgewinnung. Freiknecht be-

schreibt in seinem Buch ,Big Data in der Praxis‘ ein Beispiel über eine wenige 100 Me­gabyte (MB) große Videoaufzeichnung eines Kaufhauses. Mit dieser Aufzeichnung sol­len Kundenströme analysiert und situationserkennende Algorithmen implementiert wer­den. Die Beispiele von Freiknecht und Baron zeigen, dass Big Data nicht nur im Zusam­menhang mit großen Datenmengen zu sehen ist, sondern auch die Komplexität von Daten betrachtet werden muss.[8]

1.2 Zielsetzung

Mit der zunehmenden Digitalisierung von Prozessen und Arbeitsschritten wird eine Viel­zahl umfangreicher Daten generiert. Diese Daten können in eine der nachstehenden Grup­pen eingeordnet werden. Die Datengruppen unterscheiden sich in

- unstrukturierte,
- semi-strukturierte und
- strukturierte Daten.[9]

Unter den unstrukturierten Daten werden u.a. Fließtexte oder Daten verstanden, die kein erkennbares Muster haben. Semi-strukturierte Daten weisen ein bestimmtes aber nicht standardisiertes Schema auf. Strukturierte Daten finden sich primär in relationalen Da­tenbanksystemen wieder. Die Daten werden in festen Tabellen (Schemata) gespeichert, die in Beziehung zueinander stehen. Die nachstehende Abbildung 3 verdeutlicht die Ab­grenzung der Datengruppen anhand gängigster Technologien.[10]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3: Abgrenzung der Datengruppen.[11]

Wie in Abbildung 3 zu erkennen ist, sind semi-strukturierte Daten weder vollkommen unstrukturiert noch besitzen Sie eine gänzlich festgelegte Struktur. Dieser Zusammen­hang wird am nachstehenden Beispiel zweier eXtensible Markup Language (XML) Da­teien im Listing 1 deutlich.[12]

Abbildung in dieser Leseprobe nicht enthalten

Listing 1: Zwei XML Dateien, die jeweils ein Buch beschreiben.[13]

Listing 1 zeigt an einem Beispiel von zwei XML Dateien über Buchdatensätze, dass semi­strukturierte Daten eine innere Struktur besitzen, sich aber untereinander unterscheiden können. Die im Listing 1 gezeigte Datei Buch_1.xml besitzt im Gegensatz zu Buch_2.xml zusätzlich zu den Angaben des Autors und des Titels die Informationen ISBN und Ver­lag.[14]

Zielsetzung dieser Arbeit ist es, strukturierte Qualitätsberichte des Gemeinsamen Bun­desausschusses (G-BA) von Krankenhäusern im Dateiformat XML mithilfe des Frame­works und Programmiermodels Hadoop MapReduce zu analysieren. Die Herausforde­rung besteht darin, dass die strukturierten Qualitätsberichte einen definierten Aufbau ha­ben, sich aber wie die Beispiele aus Listing 1 unterscheiden können.

1.3 Methodik

Zur Durchführung der Textanalysen wird ein Hadoop Cluster mit drei Servern erstellt. Die Server werden als virtuelle Maschinen (VM) mit dem Betriebssystem Ubuntu Linux Server installiert. Die Erstellung des Clusters, die Installation der Server mit Hadoop so­wie die Administration werden in Kapitel 4 genauer erläutert. Für die Analyse der struk­turierten Qualitätsberichte werden MapReduce Programme in der Programmiersprache Java -Version 8- entwickelt. Als Entwicklungsumgebung wird die integrierte Entwick­lungsumgebung (IDE) Eclipse in der Version 4.5.2 -Projektname Mars.2- eingesetzt. Für die Literaturrecherche werden sowohl klassische Literatur als auch Literatur und Fach­aufsätze aus den Plattformen IEEE Xplore und EBSCO Host herangezogen.

1.4 Aufbau der Arbeit

Das Kapitel 2 beschreibt die Grundlagen des Hadoop Frameworks und erläutert die Ar­chitektur Yet Another Resource Manager (YARN), den Aufbau und Ablauf des Program­miermodells MapReduce sowie die Funktionsweise des Hadoop Distributed File System (HDFS). Im Anschluss daran werden das mathematische Modell der Support Vector Ma­chines (SVM) und die Statistiksoftware R vorgestellt. In Kapitel 3 werden die zu unter­suchenden strukturierten Qualitätsberichte aus Krankenhäusern beschrieben und deren Aufbau erläutert. Das Kapitel 4 behandelt das Setup für diese Arbeit und beschreibt die Installation und Administration der Server und von Hadoop.

Im darauf folgenden Kapitel 5 wird die Durchführung der Analyse beschrieben. Im We­sentlichen werden die Vorüberlegungen und das Erstellen der MapReduce Programme betrachtet. Anschließend werden die Auswertungsergebnisse und eine weitere mögliche Verarbeitung mit den vorgestellten Analyseverfahren k-Means Clustering und der Sup­port Vector Regressionsanalyse (SVR) in R erläutert. Das Kapitel 6 setzt sich mit der Diskussion der Vor- und Nachteile des Einsatzes von Hadoop im Zusammenhang mit der

Analyse von Qualitätsberichten auseinander. In Kapitel 7 wird ein Fazit über das einge­setzte Verfahren zur Analyse gezogen und ein Ausblick auf weitere Technologien gege­ben.

2 Grundlagen

Die Menge unstrukturierter Daten wächst im Zeitalter von Social Web und Industrie 4.0 stark an. Dies liegt zum Einen an den neuen Technologien und Übertragungsgeschwin­digkeiten, zum Anderen an der Verbreitung neuer elektronischer Geräte wie bspw. Smart­phones und Tablets oder der Drahtloskommunikationstechnologien Radio Frequency Identification (RFID) und Near Field Communication (NFC). Mit dem Open Source Framework der Apache Foundation Hadoop lassen sich die generierten Daten ggü. nicht verteilten Systemen durch Verteilung auf verschiedene Knoten effizienter verarbeiten. In diesem Kapitel werden die Grundlagen und Kernbestandteile von Hadoop sowie die Sup­port Vector Machines und die Statistiksoftware R erläutert.[15]

2.1 Hadoop

Hadoop ist ein Softwareframework der Apache Foundation für die verteilte Verarbeitung großer Datenmengen mithilfe von Server-/Computer-Clustern. Ein Cluster besteht aus mehreren miteinander vernetzten Rechnern bzw. Servern. Zum Einen erhöht ein Cluster die Rechenkapazität, zum Anderen wird die Ausfallsicherheit eines Systems erhöht. Ha- doop wurde von der Apache Foundation so konzipiert, dass die Erweiterung von einem kleinen zu einem größeren Cluster mit einer Vielzahl von Computern/Servern mit ver­hältnismäßig wenig Aufwand durchführbar ist. Eine der großen Stärken von Hadoop ist, dass Fehler und Probleme in Soft- und Hardware bereits auf der Anwendungsschicht er­kannt und behandelt werden können. Dies bedeutet im Umkehrschluss, dass mit Einsatz von Hadoop Kosten für teure neue Hardware eingespart werden können.[16]

Für die dezentrale Verarbeitung von großen Datenmengen gibt es einen großen Markt mit vielen Softwareherstellern (z.B. Microsoft Data Warehouse). Hadoop hat gegenüber vie­len Herstellern die nachstehenden sechs besonderen Eigenschaften:

- Erreichbarkeit,
- Robustheit,
- Skalierbarkeit,
- Verfügbarkeit,
- Open Source und
- Einfachheit.[17]

Unter der Erreichbarkeit versteht man, dass Hadoop auf großen Clustern oder als Service in der Cloud wie bspw. Amazons Elastic Compute Cloud (EC2) angeboten wird. Der Zugriff auf Hadoop ist 24 Stunden am Tag und an 7 Tagen in der Woche möglich. Die Robustheit eines Hadoop Systems liegt darin begründet, dass das Framework zum Einen sowohl auf aktuellen als auch auf älteren oder ausrangierten Systemen problemlos läuft. Zum Anderen ist Hadoop so konzipiert, dass das System trotz fehlerhafter Hardware lauf­fähig bleibt.[18]

Das Hadoop Framework ist linear skalierbar und das Hinzufügen von weiteren Rechen­einheiten (Rechner/Server) innerhalb eines Clusters ist mit verhältnismäßig wenig Auf­wand möglich. Die lineare Skalierbarkeit eines Systems kann mit der Formel

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4: Lineare Skalierbarkeit des Hadoop Frameworks.[20]

Hadoop ist eine Open Source Software, die kostenlos von der Webseite des Apache Pro­jektes heruntergeladen werden kann. Die Dokumentation des Projektes beinhaltet sowohl eine ausführliche Installationsanleitung als auch ausführliche Beispiele. Hadoop bietet zudem -wie viele andere Open Source Projekte- eine große Community zum gegenseiti­gen Austausch.[21]

Die Einfachheit von Hadoop liegt darin begründet, dass Anwendungen für Hadoop mit wenig Aufwand erstellt werden können. Diese Anwendungen müssen nicht zwangsläufig in Java geschrieben werden, sondern können auch in anderen Programmier- und Skript­sprachen wie bspw. Python oder C erstellt werden. Für die Ausführung von MapReduce Jobs bietet sich u.a. auch die an die Structured Query Language (SQL) angelehnte Skript­sprache Pig (engl. Schwein) an. Für Pig sind keine besonderen Programmierkenntnisse erforderlich und die Erstellung von MapReduce Jobs ist mit dieser Skriptsprache mit we­nig Aufwand möglich.[22]

Die Kommunikation mit einem Hadoop Cluster erfolgt i.d.R. über die Clients (Desktop- PCs, Notebooks etc.). Die nachstehende Abbildung 5 veranschaulicht die Interaktion von Clients mit einem Hadoop Cluster.[23]

Wie zu erkennen ist, besteht ein Hadoop Cluster aus mehreren Rechnern bzw. Servern, die über ein Netzwerk miteinander verbunden sind. Diese Systeme befinden sich in einem Data-Center, oft auch im gleichen Serverschrank (engl. Rack). Die Speicherung und Ver­arbeitung der Daten werden im Cluster vorgenommen. Für die Verarbeitung von Daten senden unterschiedliche Nutzer ihre Verarbeitungsjobs an den Cluster. Die Verteilung der Daten und Jobs innerhalb des Clusters erfolgt automatisch durch den sogenannten Mas- ter-Knoten.[24] [25]

Innerhalb eines Clusters koordiniert der Master-Knoten (Master-Node) alle ihm unter­stellten Knoten (Slave-Node). Dem Master-Node ist bekannt, auf welchem Slave-Node welche Daten gespeichert sind, und er kennt die zurzeit ausgeführten Jobs. Während des Betriebs übernimmt der Master die Aufgaben

- Entgegennahme,
- Steuerung,
- Verteilung,
- Überwachung der Jobs,
- Datenbereitstellung sowie
- Überwachung des Clusters.[26]

Aufgrund der umfangreichen Steuerungsfunktionen wird der Master-Knoten in der Lite­ratur häufig als ,Single Point of Failure‘ bezeichnet. Ein Ausfall des Master-Knotens hätte einen Ausfall des Gesamtsystems zur Folge. Da der Master-Knoten selbst keine Berech­nungen und Auswertungen übernimmt, ist ein Ausfall der Maschine relativ selten. Die nachstehende Abbildung 6 zeigt den organisatorischen Aufbau eines Hadoop-Clusters.[27] [28]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 6: Hierarchische Struktur eines Hadoop Clusters.218

In der Abbildung 6 werden auch die Dienste gezeigt, die jeweils auf einem Knoten in einer Hierarchiestufe ausgeführt werden. Auf dem Master Knoten werden die Dienste Resource Manager, Name Node, Job History Server sowie JobTracker ausgeführt. Der Masterknoten verteilt mithilfe dieser Dienste die Jobs optimal an die ihm untergeordneten Slaves (z.B. anhand der Auslastung oder Erreichbarkeit), übernimmt die Fehlerbehand­lung und nimmt die Ergebnisse der Verarbeitung entgegen. Die Dienste Node Manager und Data Node werden von den Slaves ausgeführt. Der Node Manager fordert sogenannte Datencontainer vom Resource Manager des Masters an und verwaltet diese. Der Data Node beinhaltet die Datencontainer und dient als Speicher. Der Name-Node und der Data- Node sind im engeren Sinn Programme, die in der Programmiersprache Java geschrieben worden sind und können daher unabhängig von der Plattform bzw. des Betriebssystems ausgeführt werden. Im Umkehrschluss bedeutet das, dass jeder Rechner, auf dem Java installiert ist, einen Name- und Data-Node erstellen kann. Diese Dienste sind Teil der Softwarearchitektur YARN, die im folgenden Kapitel 2.2 genauer beschrieben wird.[29]

2.2 YARN

Mit der Version 2 von Hadoop wurde die Softwarearchitektur Yet Another Resource Ma­nager (YARN) eingeführt. Mit Einführung von YARN können Benutzer des Systems nicht nur MapReduce Programme, sondern auch andere verteilte Programmtypen auf Ha­doop ausführen. Hadoop verwendet in einem Cluster einen sog. Resource Manager, um alle Jobs zu planen und zu verwalten. Die Verwaltung der Slaves übernimmt der Node Manager, der auf jedem Slave ausgeführt wird und mit dem Resource Manager des Mas­terknotens kommuniziert. Die Kapazitäten (Rechenleistung und Speicher) der Slaves werden in sog. Containern eingeteilt. Der Resource Manager des Masters und die Node Manager der Slaves haben keine Informationen über die aktuellen Jobs -sie verwalten lediglich die Container. Diese beiden Prozesse sind taskneutral und belegen daher keine Kapazitäten.[30]

Jede Anwendung, die Berechnungen durchführt, muss den sog. Application Master star­ten. Dieser Dienst verwaltet den auszuführenden Job. Die Ausführung des Application Master Dienstes erfolgt innerhalb eines Datencontainers und benötigt somit Rechenkapa­zitäten. Um eine Anwendung auszuführen, muss der Application Master zur Laufzeit beim Resource Manager ggf. weitere Container anfordern bzw. gibt Container bei Nicht­gebrauch wieder frei. Dies hat zur Folge, dass die Beziehung zwischen dem Resource Manager und dem Application Master zur Laufzeit eines Programms dynamisch ist.[31]

Der Workflow eines Hadoop Jobs verläuft i.d.R. wie folgt:

1. Der Client übermittelt den Job an den Resource Manager.
2. Der Resource Manager wählt einen Knoten im Cluster aus und lässt über den Node Manager einen Application Master starten.
3. Der Application Master, der in einem Container läuft, fordert für die Durchfüh­rung des Jobs weitere Container beim Resource Manager an.
4. Die anschließend zugewiesenen Container werden von den entsprechenden Node Managern aktiviert und verwaltet.
5. Sobald der Application Master mit den zugewiesenen Containern den Job aus­führt, treten die Prozesse Resource Manager und der Node Manager in den Hin­tergrund.
6. Der Zustand eines Jobs wird an den Application Master gemeldet.
7. Sobald der Job abgeschlossen ist, werden die Container (Ressourcen) durch den Application Master an den Resource Manager wieder freigegeben.[32]

2.3 MapReduce

MapReduce ist ein Programmiermodell zur Verarbeitung großer Datenmengen auf ver­teilten Systemen. Das Modell wurde erstmals im Jahr 2004 von den Google Mitarbeitern Jeffrey Dean und Sanjay Ghemawat vorgestellt. Google stand damals vor der Herausfor­derung, die riesigen und durchaus komplexen Datenmengen schnell zu verarbeiten. Hierzu wurden verschiedene und komplexe Programmiermodelle entwickelt, die jeweils nur für eine bestimmte Aufgabenstellung verwendet werden konnten. Google sah sich daher gezwungen, ein neues, abstrakteres Modell zu entwickeln, das für die meisten Prob­lemstellungen verwendet werden kann. Aus dieser Problemstellung entstand das Pro­grammiermodell MapReduce. MapReduce lässt sich in die drei Phasen

- Map,
- Combine und
- Reduce unterteilen.[33]

In der Map-Phase werden Schlüssel/W ert-Paare vom Programm erstellt, indem der Be­nutzer einen gewünschten Index festlegt. Diesem Index werden Teile der Eingabedaten zugeordnet, sodass am Ende eine Liste mit Schlüssel/Wert-Paaren ausgegeben wird. Die in der Map-Phase erstellten Indizes können mehrfach vorkommen. In der darauf folgen­den Combine-Phase werden alle Werte aggregiert, sodass keine doppelten Indizes mehr vorhanden sind. In der letzten Phase, der sog. Reduce-Phase, werden die aggregierten Schlüssel/W ert-Paare zusammengefasst. Die nachstehende Abbildung 7 verdeutlicht den Ablauf eines MapReduce Programms anhand der Aufsummierung von Kfz Neuzulassun­gen in verschiedenen Städten.[34]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 7: Ablauf eines MapReduce Programms.[35]

Bei den Eingabedaten beschreiben die ersten Alpha-Zeichen die Stadt und die letzten bei­den Zahlen die Anzahl der Neuzulassungen an einem Tag[36]. Die übergebenen Eingabe­daten werden in der Map-Phase zu Schlüssel/Wert-Paaren umgewandelt. In der darauf folgenden Combine-Phase werden die Daten aggregiert, sodass die Schlüssel eindeutig sind. In der Reduce-Phase werden die Werte eines Schlüssels aufsummiert. Die Erstel­lung eines MapReduce Programms erfolgt immer nach dem gleichen Muster. Der nach­stehende Pseudocode in Listing 2 verdeutlicht den Aufbau der Map-Phase am Beispiel des Programms WordCount. Mit dem Programm WordCount sollen alle Wörter gezählt werden, die in einem Dokument vorkommen.[37]

Abbildung in dieser Leseprobe nicht enthalten

Listing 2: Pseudo-Code einer Map-Funktion für das Programm WordCount.[38]

Die Map-Phase übernimmt die Funktion map aus Listing 2. Der Parameter key beinhaltet den Namen eines Dokuments und der Parameter value speichert den Inhalt des Doku­ments. In der For-Schleife ab Zeile 4 wird für jedes Wort der Wert 1 gesetzt und als neues Schlüssel/Wert-Paar zurückgegeben. Die anschließende Reduce-Phase wird mit dem Pseudo-Code in Listing 3 verdeutlicht.[39]

Abbildung in dieser Leseprobe nicht enthalten

Listing 3: Pseudo-Code einer Reduce-Funktion für das Programm WordCount.[40]

Die Reduce-Phase nimmt als Eingabeparameter den Schlüssel key und die Werte values in Form einer Liste entgegen. In der Schleife ab Zeile 6 im Pseudo-Code werden für alle Schlüssel die Werte (1) aufaddiert.[41]

2.4 Hadoop Distributed File System

Das Hadoop Distributed File System (HDFS) ist das Dateisystem von Hadoop. Mit dem HDFS wird es ermöglicht, Dateien und Daten auf einen Knoten im Cluster abzulegen. Das HDFS entstand aus einem Bericht der Firma Google zum Thema Google File System (GFS). Google entwickelte das GFS, um die Datenmengen in Clustern besser verwalten und verarbeiten zu können. Aus Googles GFS entwickelte die Apache Foundation das Hadoop Distributed File System. Das HDFS soll die folgenden Anforderungen erfüllen können:

- Betrieb auf sog. Commodity Hardware (engl. ausrangierte/gebrauchte Hardware),
- Ausfallsicherheit,
- Speicherung großer Datenmengen,
- Verarbeitung großer Datenmengen und
- Skalierbarkeit.[42]

Das HDFS setzt auf den bereits existierenden Dateisystemen auf (z.B. Fourth Extended Filesystem (ext4)), sodass das Anlegen einer separaten Partition entfällt. Einer der we­sentlichen Unterschiede des HDFS gegenüber traditioneller Dateisysteme ist, dass die Blockgröße durchschnittlich zwischen 64 MB und 128 MB groß ist. Die traditionellen Dateisysteme arbeiten typischerweise mit Blockgrößen von 1 Kilobyte (KB) bis 64 KB. Durch die deutlich größeren Blockgrößen kann Hadoop größere Datenblöcke im HDFS verteilen. Die nachstehende Abbildung 8 veranschaulicht die Architektur und Funktions­weise des HDFS.[43] [44]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 8: Architektur und Funktionsweise des HDFS.44

Der Name Node erhält vom Client eine Datei, die im HDFS gespeichert werden soll. Der Name Node benötigt die Informationen über die Aufteilung der Datei (Blockgröße) und Anzahl der Repliken. Mit diesen Metadaten werden so viele Data Nodes gesucht, wie der Client durch die Replikenanzahl fordert. Die Adressen der Data Nodes werden an den Client übermittelt, sodass dieser beginnen kann, die Daten zu übertragen. Um die Effizi­enz des Systems zu steigern, sortiert der Name Node die Liste der Data Nodes vor der Übergabe der Datei nach bestimmten Parametern (z.B. bester Datendurchsatz, beste Er­reichbarkeit etc.). Der Client weiß somit, welcher Knoten im Cluster am besten erreichbar und geeignet ist.[45]

2.5 Support Vector Machine

Eine Support Vector Machine (SVM) ist ein mathematisches Verfahren zur Mustererken­nung von Objekten. Die SVM ist in das Themengebiet des maschinellen Lernens einzu­ordnen und kann sowohl für die Klassifizierung von Objekten als auch für die Regressi­onsanalyse eingesetzt werden. Um Objekte in einem Datenuniversum zu klassifizieren, berechnet die SVM eine Entscheidungslinie -die sog. Hyperebene (engl. Hyperplane).

[...]


[1] Vgl. Collins (2015), S. 101; Google Suche ausgeführt am 26.04.2016 um 18:45 Uhr; Schroeck et al. (2012), S. 1; Zwick et al. (2013), S. 35

[2] Vgl. Gartner (2011); Klein et al. (2013), S. 320; Laney (2001), S. 1 ff.

[3] Quelle: In Anlehnung an Laney (2001), S. 3

[4] Vgl. Klein et al. (2013), S. 320; Laney (2001), S. 1 ff.; Schroeck et al. (2012), S. 4f.

[5] Vgl. Freiknecht (2014), S. 13; Gupta (2015), S. 1398; Schroeck et al. (2012), S. 5

[6] Quelle: In Anlehnung an Schön (2015), S. 5

[7] Quelle: Baron (2013), S. 1

[8] Vgl. Baron (2013); Freiknecht (2014), S. 14

[9] Vgl. Geisler (2014), S. 496 ff.

[10] Vgl. Schön (2015), S. 303

[11] Quelle: In Anlehnung an Geisler (2014), S. 497

[12] Vgl. Becher (2003), S. 3 ff.

[13] Quelle: Eigene Darstellung

[14] Vgl. Becher (2003), S. 3 ff.

[15] Vgl. Apache (2016); Wiehr (2011)

[16] Vgl. Apache (2016); Wartala (2012), S. 21; Sivaraman/Manickachezian (2014), S. 32; Zhu et al. (2014), S. 321

[17] Vgl. Apache (2016); Gupta (2015), S. 1399

[18] Vgl. Gunther et al. (2015), S. 48 f.; Lam (2011), S. 4 ff.

[19] Vgl. Gunther et al. (2015), S. 48

[20] Quelle: In Anlehnung an Gunther et al. (2015), S. 48

[21] Vgl. Apache (2016); Freiknecht (2014), S. 20

[22] Vgl. Gunther et al. (2015), S. 48 f.; Lam (2011), S. 4 ff.

[23] Vgl. Gunther et al. (2015), S. 48 f.; Lam (2011), S. 4 ff.

[24] Quelle: In Anlehnung an Lam (2011), S. 5

[25] Vgl. Lam (2011), S. 5

[26] Vgl. Eadline (2016), S. 19 ff.; Freiknecht (2014), S. 68 ff.

[27] Vgl. Freiknecht (2014), S. 68 f.

[28] Quelle: In Anlehnung an Freiknecht (2014), S. 69; Narayan et al. (2012), S. 536

[29] Vgl. Borthakur (2008), S. 5; Eadline (2016), S. 13 f.; Freiknecht (2014), S. 69 f.

[30] Vgl. Eadline (2016), S. 178 ff.; Freiknecht (2014), S. 25 ff.; Huang et al. (2015), S.80

[31] Vgl. Eadline (2016), S. 13

[32] Vgl. Eadline (2016), S. 13 f.

[33] Vgl. Apache MapReduce Tutorial (2016); Çatak/Balaban (2016), S. 7 ff.; Dean/Ghemawat (2004), S. 1; Dean/Ghemawat (2010), S. 72 ff.; Eadline (2016), S. 8; Narayan et al. (2012), S. 536; Zhang et al. (2014), S. 396

[34] Vgl. Dean/Ghemawat (2004), S. 2 ff.; Dean/Ghemawat (2010), S. 72; Freiknecht (2014), S. 42 f.; Kiran et al. (2013), S. 319; Narayan et al. (2012), S. 536

[35] Quelle: In Anlehnung an Çatak/Balaban (2016), S. 7; Freiknecht (2014), S. 43; Kiran et al. (2013), S. 320; Narayan et al. (2012), S. 536; Wartala (2012), S. 28

[36] Anm. des Autors: Die Zahlen sind frei erfunden

[37] Vgl. Apache MapReduce Tutorial (2016); Dean/Ghemawat (2010), S. 72

[38] Quelle: In Anlehnung an Apache MapReduce Tutorial (2016); Dean/Ghemawat (2010), S. 72

[39] Vgl. Apache MapReduce Tutorial (2016); Dean/Ghemawat (2010), S. 72

[40] Quelle: In Anlehnung an Apache MapReduce Tutorial (2016); Dean/Ghemawat (2010), S. 72

[41] Vgl. Borthakur (2008), S. 3 ff.; Dean/Ghemawat (2010), S. 72

[42] Vgl. Borthakur (2008), S. 3 f.; Freiknecht (2014), S. 21 f.; Lim/Choi (2013), S. 8

[43] Vgl. Borthakur (2008), S. 1 ff.; Freiknecht (2014), S. 21 f.; Ghemawat et al. (2003), S. 1 ff.; Narayan et al. (2012), S. 535 f.

[44] Quelle: In Anlehnung an Borthakur (2008), S. 5; Freiknecht (2014), S. 22; Lim/Choi (2013), S. 8

[45] Vgl. Borthakur (2008), S. 5; Freiknecht (2014), S. 22

Ende der Leseprobe aus 60 Seiten

Details

Titel
Installation und Anwendung einer Support Vector Machine: Hadoop MapReduce erläutert
Hochschule
FOM Essen, Hochschule für Oekonomie & Management gemeinnützige GmbH, Hochschulleitung Essen früher Fachhochschule
Note
1,3
Autor
Jahr
2016
Seiten
60
Katalognummer
V368497
ISBN (eBook)
9783668485259
ISBN (Buch)
9783668485266
Dateigröße
1317 KB
Sprache
Deutsch
Schlagworte
Hadoop, MapReduce, Support Verctor Machine, Big Data, R, Text-Mining, Textanalyse
Arbeit zitieren
Thorsten Kalweit (Autor), 2016, Installation und Anwendung einer Support Vector Machine: Hadoop MapReduce erläutert, München, GRIN Verlag, https://www.grin.com/document/368497

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Installation und Anwendung einer Support Vector Machine: Hadoop MapReduce erläutert



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden