SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
Hadoop aus IT-Operations Sicht – Teil 1
Hadoop-Grundlagen
Brownbag am Freitag, den 26.07.2013
Daniel Bäurer
inovex GmbH
Systems Engineer
22.05.14
Inhalt
● Was ist Hadoop?
● Die Basis von Hadoop – Common
● Die Basis von Hadoop – HDFS, NameNode und DataNode
● Das Programmiermodell MapReduce
● Das MapReduce Framework – JobTracker und TaskTracker
22.05.14
Was ist Hadoop?
HADOOP
HDFS
MapReduce
Flume
Sqoop
HCatalog
Hue
Hive
Pig
HBase
Zookeeper
Oozie
Whirr
Snappy
Mahout
Chukwa
Cloudera
HortonworksMapR
NameNode DataNode
JobTracker
TaskTracker
22.05.14
Was ist Hadoop?
● Hadoop ist ein auf Java basierendes Framework.
● Hadoop ist die Basis für eine Vielzahl weiterer Software-Produkte
(„Hadoop Eco-System“).
● Hadoop ist für die Verarbeitung sehr großer Datenmengen
ausgelegt.
● Hadoop kann Daten und Rechenoperationen auf viele Rechner
verteilen.
● Hadoop kann mit wachsenden (schrumpfenden) Daten oder
Rechenoperationen skalieren.
● Zusammengefasst:
„Hadoop ist ein freies, Java-basiertes Open-Source-Framework für
die skalierbare und verteilte Verarbeitung großer Datenmengen auf
vielen Rechnern innerhalb eines Netzwerks.“
Wartala, Ramon: Hadoop - Zuverlässig, verteilte und skalierbare Big-Data-Anwendungen. München 2012, S. 21
22.05.14
Die Basis von Hadoop – Common
HADOOP
HDFS
MapReduce
Flume
Sqoop
HCatalog
Hue
Hive
Pig
HBase
Zookeeper
Oozie
Whirr
Snappy
Mahout
Chukwa
Cloudera
HortonworksMapR
NameNode DataNode
JobTracker
TaskTracker
22.05.14
Die Basis von Hadoop – Common
● Hadoop Common stellt Grundfunktionen bereit.
● Beispielsweise:
● Eine implementierungsneutrale Dateisystem-Schnittstelle.
● Eine RPC („Remote-Procedure-Call“) Schnittstelle zur
Kommunikation im Rechnerverbund (Cluster).
● Bibliotheken zur Serialisierung von Daten.
● Werkzeuge und Bibliotheken die von anderen Hadoop
Komponenten (oder Software-Produkten) genutzt werden.
22.05.14
Die Basis von Hadoop – HDFS, NameNode und DataNode
HADOOP
HDFS
MapReduce
Flume
Sqoop
HCatalog
Hue
Hive
Pig
HBase
Zookeeper
Oozie
Whirr
Snappy
Mahout
Chukwa
Cloudera
HortonworksMapR
NameNode DataNode
JobTracker
TaskTracker
22.05.14
Die Basis von Hadoop – HDFS, NameNode und DataNode
Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 10
HDFS-Architektur
22.05.14
Die Basis von Hadoop – HDFS
● HDFS („Hadoop Distributed File System“) ist ein skalierbares und
verteiltes Dateisystem.
● HDFS ist das Standard-Dateisystem von Hadoop.
● HDFS folgt in den wesentlichen Eigenschaften dem „Google File
System“:
● Der Ausfall von Knoten kann passieren und wird als „nicht
kritisch“ betrachtet.
● Das Hinzufügen von weiteren Knoten ist sehr einfach.
● Es werden sehr große Dateien gespeichert.
● Dateien werden nur einmal geschrieben aber häufig gelesen.
● Der Aufbau eines Clusters folgt dem Master-Slave-Prinzip.
● Die Speicherung von Dateien erfolgt blockorientiert.
22.05.14
Die Basis von Hadoop – HDFS
● Die zu speichernden Dateien werden in Blöcke mit fester Größe
aufgeteilt.
● Die Blockgröße von HDFS beträgt standardmäßig 64 MB (kann
aber bis zu 1 GB konfiguriert werden).
● Aufgrund der Blockgrößen werden die Daten in größeren
zusammenhängenden Stücken auf die Platten geschrieben, was
die Schreib- und Leseoperationen positiv beeinflusst.
● Standardmäßig wird ein Block im HDFS dreifach, auf
unterschiedlichen Knoten, repliziert.
● Zusätzlich können Blöcke auch über Knoten in verschiedenen
Serverschränken verteilt werden („Rack-Awareness“).
22.05.14
Die Basis von Hadoop – NameNode
● Der NameNode ist der Master im HDFS der über alle Metadaten
des Dateisystems verfügt.
● Der NameNode ist die zentrale Anlaufstelle wenn Lese- oder
Schreiboperationen im HDFS durchgeführt werden sollen.
● Der NameNode stellt sicher das Blöcke verteilt und repliziert
werden.
● Der NameNode kennt alle Verzeichnisse und Dateien.
● Der NameNode kennt weiterhin
● alle Aufteilungen Datei → Block
● alle Speicherorte Block → Knoten
● alle Repliken Block → Knoten
22.05.14
Die Basis von Hadoop – NameNode
● Der NameNode hält alle HDFS-Metadaten im Speicher (RAM) vor
um sehr schnell etwaige Anfragen verarbeiten zu können.
● Die HDFS-Metadaten (Datei → Block) werden auf dem lokalen
System des NameNode persistiert (nicht aber Block → Knoten).
● Die Persistierung erfolgt ähnliche dem WAL-Prinzip („Write
Ahead Log“).
● Die Zusammenführung der „Write-Ahead-Logs“ zu einem
konsistenten Speicherabbild wird vom Secondary NameNode in
regelmäßigen Abständen durchgeführt.
● Der Secondary NameNode stellt lediglich eine Art „Housekeeper“
für den NameNode dar. Er kann nicht die Funktionen des
NameNodes übernehmen!
22.05.14
Die Basis von Hadoop – DataNode
● Ein DataNode ist der Slave im HDFS der die ihm zugewiesenen
Blöcke verwaltet.
● Ein DateNode kennt die Blöcke die er vorhält, nicht aber zu
welcher Datei sie gehören.
● Ein DataNode verfügt über mehrere Festplatten die exklusiv für
das HDFS zum speichern der Blöcke verwendet werden.
● Ein DataNode ist zuständig für den Transport der Blöcke und
organisiert diesen dezentral.
● Ein DataNode sendet in regelmäßigen Abständen einen Block-
Report an den NameNode, woraus dieser die Metadaten Block →
Knoten herleitet.
● Ein DataNode sendet ebenfalls in regelmäßigen Abständen ein
Lebenszeichen („Heartbeat“) an den NameNode.
22.05.14
Die Basis von Hadoop – HDFS, NameNode und DataNode
Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 12
HDFS-Leseoperation
22.05.14
Die Basis von Hadoop – HDFS, NameNode und DataNode
Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 14
HDFS-Schreiboperation
22.05.14
Die Basis von Hadoop – NameNode
Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 16
Secondary NameNode „Housekeeping“
22.05.14
Das Programmiermodell MapReduce
HADOOP
HDFS
MapReduce
Flume
Sqoop
HCatalog
Hue
Hive
Pig
HBase
Zookeeper
Oozie
Whirr
Snappy
Mahout
Chukwa
Cloudera
HortonworksMapR
NameNode DataNode
JobTracker
TaskTracker
22.05.14
Das Programmiermodell MapReduce
● MapReduce ist ein von Google entwickeltes Programmiermodell,
dass aus den Funktionen map() und reduce() Funktionaler
Sprachen inspiriert wurde.
● Hierbei wird der Funktion map() eine Funktion als Parameter
übergeben, die auf alle Werte einer Liste angewandt wird und als
Resultat eine Liste zurück gibt.
● Die reduce()-Funktion wiederum erhält diese aus der map()-
Funktion resultierenden Liste als Parameter und reduziert diese
anhand einer gegebenen Funktion auf einen Wert.
● Python-Beispiel:
>>> def f(x): return x+x
>>> def g(x,y): return x+y
>>> map(f, [1,2,3,4])
>>> [2,4,6,8]
>>> reduce(g, map(f, [1,2,3,4]))
>>> 20
22.05.14
Das Programmiermodell MapReduce
● Beim MapReduce-Programmiermodell entspricht die Map-Funktion
der Funktion, die der map()-Funktion Funktionaler Sprachen
übergeben wird. Die Reduce-Funktion von MapReduce legt die Art
der Aggregation fest.
● MapReduce-Definition:
Map: K x V → (L x W)*
Reduce: L x W* → X*
● MapReduce-Konzept:
● In der ersten Phase (Map) werden einzelne Key/Value-Paare
verarbeitet die als Ergebnis eine Menge weiterer Key/Value-
Paare liefert (Zwischenergebnis).
● In der zweiten Phase (Reduce) werden die aus der ersten
Phase entstandenen Zwischenergebnisse anhand eines Keys
aggregiert und als Ergebnis zurückgeliefert.
22.05.14
Das Programmiermodell MapReduce
● Beispiel „Häufigkeit von Wörtern in Dokumenten“:
● Die Map-Funktion erhält als Eingabe Dateien (K), deren Inhalt
(V) in Wörter aufgeteilt wird und somit die folgende Ausgabe
(Zwischenergebnis) liefert:
Key l L:∈ Wort
Value w W:∈ 1
● Die Reduce-Funktion aggregiert nun alle Values für einen Key l
L∈ und liefert das Ergebnis X für jeden l L∈ zurück.
● „Dies ist ein Beispiel ein Beispiel“
L: l1,w1 = Dies,1; l2,w2 = ist,1; l3,w3 = ein,1; l4,w4 =
Beispiel,1; l5,w5 = ein,1; l6,w6 = Beispiel,1;
X: Dies = 1; ist = 1; ein = 2; Beispiel = 2;
22.05.14
Das Programmiermodell MapReduce
● Für was ist MapReduce geeignet?
● MapReduce ist für Aufgaben geeignet, deren Eingabemenge
sich in Teilstücke partitionieren lassen.
● Hierdurch können die Teilstücke unabhängig voneinander
bearbeitet werden.
● Weiterhin eignet sich MapReduce zur Verarbeitung von
unstrukturierten Eingangsdaten.
● Hierdurch können die Eingangsdaten mit verschiedenen
Aufgaben verarbeitet werden.
● Entsprechend ungeeignet für MapReduce sind Aufgaben,
deren Eingabemenge als Ganzes durch Abhängigkeiten nicht
partitionierbar sind.
22.05.14
Das MapReduce Framework – JobTracker und TaskTracker
HADOOP
HDFS
MapReduce
Flume
Sqoop
HCatalog
Hue
Hive
Pig
HBase
Zookeeper
Oozie
Whirr
Snappy
Mahout
Chukwa
Cloudera
HortonworksMapR
NameNode DataNode
JobTracker
TaskTracker
22.05.14
Das MapReduce Framework
● Neben dem Programmiermodell, das als MapReduce bezeichnet
wird, werden auch die spezifischen Implementierungen des
Software-Frameworks als MapReduce bezeichnet.
● Das MapReduce-Framework ist für die Verarbeitung großer und
verteilter Datenmengen ausgelegt.
● Es werden so genannte „Jobs“ entwickelt, die im wesentlichen aus
Map- und Reduce-Funktionen bestehen.
● Das Framework übernimmt hierbei sämtliche Aufgaben, von der
Verteilung der Jobs, der Parallelisierung und Planung der
Einzelschritte bis hin zur Fehlerbehandlung.
● MapReduce ist ein System das für die Stapelverarbeitung
(„Batch“) ausgelegt ist.
● MapReduce verfolgt die Strategie, Berechnung auf den Knoten
auszuführen auf denen die Daten liegen („Locality of Reference“).
22.05.14
Das MapReduce Framework – JobTracker
● Der JobTracker ist der Master im MapReduce-Framework und
nimmt die Jobs der Clients an.
● Der JobTracker verfügt über die Informationen welche Slave-
Knoten aktiv sind und aktuell Tasks ausführen können.
● Der JobTracker plant Tasks und überwacht diese auf den
einzelnen Slave-Knoten (Worker).
● Equivalent zum HDFS NameNode werden sämtliche Tasks und
Job-Informationen im Speicher vorgehalten.
22.05.14
Das MapReduce Framework – TaskTracker
● Ein TaskTracker ist der Slave im MapReduce-Framework und
verarbeitet die vom JobTracker im zugewiesenen Tasks.
● Ein TaskTracker meldet periodisch den Task-Status dem
JobTracker zurück.
● Ein TaskTracker läuft immer auf einem DataNode um die zu
verarbeitenden Daten lokal auslesen zu können.
● Ein TaskTracker bietet eine gewisse Anzahl an Map- und Reduce-
Slots an, die dem JobTracker gemeldet werden.
22.05.14
Das MapReduce Framework – JobTracker und TaskTracker
Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 29
Map-Phase
22.05.14
Das MapReduce Framework – JobTracker und TaskTracker
Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 31
Reduce-Phase
22.05.14
Vielen Dank für Ihre Aufmerksamkeit!
inovex GmbH
Pforzheim
Karlsruher Straße 71
D-75179 Pforzheim
München
Valentin-Linhof-Straße 2
D-81829 München
Köln
Schanzenstraße 6-20
D-51063 Köln

Mais conteúdo relacionado

Mais procurados

Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungMongoDB
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortragRamon Wartala
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?KurtStockinger
 
Tech Talk Cassandra
Tech Talk CassandraTech Talk Cassandra
Tech Talk Cassandraadesso AG
 
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...SCAPE Project
 

Mais procurados (6)

Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
 
Schweine latein-vortrag
Schweine latein-vortragSchweine latein-vortrag
Schweine latein-vortrag
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
Tech Talk Cassandra
Tech Talk CassandraTech Talk Cassandra
Tech Talk Cassandra
 
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
 

Semelhante a Hadoop aus IT-Operations-Sicht - Teil 1 (Hadoop-Grundlagen)

The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connectioninovex GmbH
 
MapRecude: The Hadoop Connection
MapRecude: The Hadoop ConnectionMapRecude: The Hadoop Connection
MapRecude: The Hadoop Connectionvesparun
 
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...inovex GmbH
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBMario Müller
 
Fusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSiebenFusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSiebeninovex GmbH
 
Hadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-InfrastrukturenHadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-Infrastruktureninovex GmbH
 
Java und Go im Vergleich
Java und Go im VergleichJava und Go im Vergleich
Java und Go im VergleichQAware GmbH
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicateUlrich Krause
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISPeter Löwe
 
Amazon EMR Grundlagen
Amazon EMR GrundlagenAmazon EMR Grundlagen
Amazon EMR Grundlageninovex GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSpeedPartner GmbH
 
Hadoop 2.0 - The Next Level
Hadoop 2.0 - The Next LevelHadoop 2.0 - The Next Level
Hadoop 2.0 - The Next LevelSascha Dittmann
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlageninovex GmbH
 
sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)sones GmbH
 
Einfuehrung in Apache Spark
Einfuehrung in Apache SparkEinfuehrung in Apache Spark
Einfuehrung in Apache SparkJens Albrecht
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?FromDual GmbH
 
Hadoop Einführung @codecentric
Hadoop Einführung @codecentricHadoop Einführung @codecentric
Hadoop Einführung @codecentricimalik8088
 

Semelhante a Hadoop aus IT-Operations-Sicht - Teil 1 (Hadoop-Grundlagen) (20)

The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connection
 
MapRecude: The Hadoop Connection
MapRecude: The Hadoop ConnectionMapRecude: The Hadoop Connection
MapRecude: The Hadoop Connection
 
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von M...
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDB
 
Fusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSiebenFusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSieben
 
Platz schaffen auf dem Domino - Compact, Compress, De-Duplicate - Ulrich Krau...
Platz schaffen auf dem Domino - Compact, Compress, De-Duplicate - Ulrich Krau...Platz schaffen auf dem Domino - Compact, Compress, De-Duplicate - Ulrich Krau...
Platz schaffen auf dem Domino - Compact, Compress, De-Duplicate - Ulrich Krau...
 
Hadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-InfrastrukturenHadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-Infrastrukturen
 
Java und Go im Vergleich
Java und Go im VergleichJava und Go im Vergleich
Java und Go im Vergleich
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
 
Amazon EMR Grundlagen
Amazon EMR GrundlagenAmazon EMR Grundlagen
Amazon EMR Grundlagen
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Hadoop 2.0 - The Next Level
Hadoop 2.0 - The Next LevelHadoop 2.0 - The Next Level
Hadoop 2.0 - The Next Level
 
Daos
DaosDaos
Daos
 
mongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - GrundlagenmongoDB im Einsatz - Grundlagen
mongoDB im Einsatz - Grundlagen
 
sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)sones auf windows azure whitepaper (german)
sones auf windows azure whitepaper (german)
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
Einfuehrung in Apache Spark
Einfuehrung in Apache SparkEinfuehrung in Apache Spark
Einfuehrung in Apache Spark
 
Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?Der Datenbank-Backup ist gemacht - was nun?
Der Datenbank-Backup ist gemacht - was nun?
 
Hadoop Einführung @codecentric
Hadoop Einführung @codecentricHadoop Einführung @codecentric
Hadoop Einführung @codecentric
 

Mais de inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mais de inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Hadoop aus IT-Operations-Sicht - Teil 1 (Hadoop-Grundlagen)

  • 1. Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst. Hadoop aus IT-Operations Sicht – Teil 1 Hadoop-Grundlagen Brownbag am Freitag, den 26.07.2013 Daniel Bäurer inovex GmbH Systems Engineer
  • 2. 22.05.14 Inhalt ● Was ist Hadoop? ● Die Basis von Hadoop – Common ● Die Basis von Hadoop – HDFS, NameNode und DataNode ● Das Programmiermodell MapReduce ● Das MapReduce Framework – JobTracker und TaskTracker
  • 4. 22.05.14 Was ist Hadoop? ● Hadoop ist ein auf Java basierendes Framework. ● Hadoop ist die Basis für eine Vielzahl weiterer Software-Produkte („Hadoop Eco-System“). ● Hadoop ist für die Verarbeitung sehr großer Datenmengen ausgelegt. ● Hadoop kann Daten und Rechenoperationen auf viele Rechner verteilen. ● Hadoop kann mit wachsenden (schrumpfenden) Daten oder Rechenoperationen skalieren. ● Zusammengefasst: „Hadoop ist ein freies, Java-basiertes Open-Source-Framework für die skalierbare und verteilte Verarbeitung großer Datenmengen auf vielen Rechnern innerhalb eines Netzwerks.“ Wartala, Ramon: Hadoop - Zuverlässig, verteilte und skalierbare Big-Data-Anwendungen. München 2012, S. 21
  • 5. 22.05.14 Die Basis von Hadoop – Common HADOOP HDFS MapReduce Flume Sqoop HCatalog Hue Hive Pig HBase Zookeeper Oozie Whirr Snappy Mahout Chukwa Cloudera HortonworksMapR NameNode DataNode JobTracker TaskTracker
  • 6. 22.05.14 Die Basis von Hadoop – Common ● Hadoop Common stellt Grundfunktionen bereit. ● Beispielsweise: ● Eine implementierungsneutrale Dateisystem-Schnittstelle. ● Eine RPC („Remote-Procedure-Call“) Schnittstelle zur Kommunikation im Rechnerverbund (Cluster). ● Bibliotheken zur Serialisierung von Daten. ● Werkzeuge und Bibliotheken die von anderen Hadoop Komponenten (oder Software-Produkten) genutzt werden.
  • 7. 22.05.14 Die Basis von Hadoop – HDFS, NameNode und DataNode HADOOP HDFS MapReduce Flume Sqoop HCatalog Hue Hive Pig HBase Zookeeper Oozie Whirr Snappy Mahout Chukwa Cloudera HortonworksMapR NameNode DataNode JobTracker TaskTracker
  • 8. 22.05.14 Die Basis von Hadoop – HDFS, NameNode und DataNode Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 10 HDFS-Architektur
  • 9. 22.05.14 Die Basis von Hadoop – HDFS ● HDFS („Hadoop Distributed File System“) ist ein skalierbares und verteiltes Dateisystem. ● HDFS ist das Standard-Dateisystem von Hadoop. ● HDFS folgt in den wesentlichen Eigenschaften dem „Google File System“: ● Der Ausfall von Knoten kann passieren und wird als „nicht kritisch“ betrachtet. ● Das Hinzufügen von weiteren Knoten ist sehr einfach. ● Es werden sehr große Dateien gespeichert. ● Dateien werden nur einmal geschrieben aber häufig gelesen. ● Der Aufbau eines Clusters folgt dem Master-Slave-Prinzip. ● Die Speicherung von Dateien erfolgt blockorientiert.
  • 10. 22.05.14 Die Basis von Hadoop – HDFS ● Die zu speichernden Dateien werden in Blöcke mit fester Größe aufgeteilt. ● Die Blockgröße von HDFS beträgt standardmäßig 64 MB (kann aber bis zu 1 GB konfiguriert werden). ● Aufgrund der Blockgrößen werden die Daten in größeren zusammenhängenden Stücken auf die Platten geschrieben, was die Schreib- und Leseoperationen positiv beeinflusst. ● Standardmäßig wird ein Block im HDFS dreifach, auf unterschiedlichen Knoten, repliziert. ● Zusätzlich können Blöcke auch über Knoten in verschiedenen Serverschränken verteilt werden („Rack-Awareness“).
  • 11. 22.05.14 Die Basis von Hadoop – NameNode ● Der NameNode ist der Master im HDFS der über alle Metadaten des Dateisystems verfügt. ● Der NameNode ist die zentrale Anlaufstelle wenn Lese- oder Schreiboperationen im HDFS durchgeführt werden sollen. ● Der NameNode stellt sicher das Blöcke verteilt und repliziert werden. ● Der NameNode kennt alle Verzeichnisse und Dateien. ● Der NameNode kennt weiterhin ● alle Aufteilungen Datei → Block ● alle Speicherorte Block → Knoten ● alle Repliken Block → Knoten
  • 12. 22.05.14 Die Basis von Hadoop – NameNode ● Der NameNode hält alle HDFS-Metadaten im Speicher (RAM) vor um sehr schnell etwaige Anfragen verarbeiten zu können. ● Die HDFS-Metadaten (Datei → Block) werden auf dem lokalen System des NameNode persistiert (nicht aber Block → Knoten). ● Die Persistierung erfolgt ähnliche dem WAL-Prinzip („Write Ahead Log“). ● Die Zusammenführung der „Write-Ahead-Logs“ zu einem konsistenten Speicherabbild wird vom Secondary NameNode in regelmäßigen Abständen durchgeführt. ● Der Secondary NameNode stellt lediglich eine Art „Housekeeper“ für den NameNode dar. Er kann nicht die Funktionen des NameNodes übernehmen!
  • 13. 22.05.14 Die Basis von Hadoop – DataNode ● Ein DataNode ist der Slave im HDFS der die ihm zugewiesenen Blöcke verwaltet. ● Ein DateNode kennt die Blöcke die er vorhält, nicht aber zu welcher Datei sie gehören. ● Ein DataNode verfügt über mehrere Festplatten die exklusiv für das HDFS zum speichern der Blöcke verwendet werden. ● Ein DataNode ist zuständig für den Transport der Blöcke und organisiert diesen dezentral. ● Ein DataNode sendet in regelmäßigen Abständen einen Block- Report an den NameNode, woraus dieser die Metadaten Block → Knoten herleitet. ● Ein DataNode sendet ebenfalls in regelmäßigen Abständen ein Lebenszeichen („Heartbeat“) an den NameNode.
  • 14. 22.05.14 Die Basis von Hadoop – HDFS, NameNode und DataNode Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 12 HDFS-Leseoperation
  • 15. 22.05.14 Die Basis von Hadoop – HDFS, NameNode und DataNode Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 14 HDFS-Schreiboperation
  • 16. 22.05.14 Die Basis von Hadoop – NameNode Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 16 Secondary NameNode „Housekeeping“
  • 18. 22.05.14 Das Programmiermodell MapReduce ● MapReduce ist ein von Google entwickeltes Programmiermodell, dass aus den Funktionen map() und reduce() Funktionaler Sprachen inspiriert wurde. ● Hierbei wird der Funktion map() eine Funktion als Parameter übergeben, die auf alle Werte einer Liste angewandt wird und als Resultat eine Liste zurück gibt. ● Die reduce()-Funktion wiederum erhält diese aus der map()- Funktion resultierenden Liste als Parameter und reduziert diese anhand einer gegebenen Funktion auf einen Wert. ● Python-Beispiel: >>> def f(x): return x+x >>> def g(x,y): return x+y >>> map(f, [1,2,3,4]) >>> [2,4,6,8] >>> reduce(g, map(f, [1,2,3,4])) >>> 20
  • 19. 22.05.14 Das Programmiermodell MapReduce ● Beim MapReduce-Programmiermodell entspricht die Map-Funktion der Funktion, die der map()-Funktion Funktionaler Sprachen übergeben wird. Die Reduce-Funktion von MapReduce legt die Art der Aggregation fest. ● MapReduce-Definition: Map: K x V → (L x W)* Reduce: L x W* → X* ● MapReduce-Konzept: ● In der ersten Phase (Map) werden einzelne Key/Value-Paare verarbeitet die als Ergebnis eine Menge weiterer Key/Value- Paare liefert (Zwischenergebnis). ● In der zweiten Phase (Reduce) werden die aus der ersten Phase entstandenen Zwischenergebnisse anhand eines Keys aggregiert und als Ergebnis zurückgeliefert.
  • 20. 22.05.14 Das Programmiermodell MapReduce ● Beispiel „Häufigkeit von Wörtern in Dokumenten“: ● Die Map-Funktion erhält als Eingabe Dateien (K), deren Inhalt (V) in Wörter aufgeteilt wird und somit die folgende Ausgabe (Zwischenergebnis) liefert: Key l L:∈ Wort Value w W:∈ 1 ● Die Reduce-Funktion aggregiert nun alle Values für einen Key l L∈ und liefert das Ergebnis X für jeden l L∈ zurück. ● „Dies ist ein Beispiel ein Beispiel“ L: l1,w1 = Dies,1; l2,w2 = ist,1; l3,w3 = ein,1; l4,w4 = Beispiel,1; l5,w5 = ein,1; l6,w6 = Beispiel,1; X: Dies = 1; ist = 1; ein = 2; Beispiel = 2;
  • 21. 22.05.14 Das Programmiermodell MapReduce ● Für was ist MapReduce geeignet? ● MapReduce ist für Aufgaben geeignet, deren Eingabemenge sich in Teilstücke partitionieren lassen. ● Hierdurch können die Teilstücke unabhängig voneinander bearbeitet werden. ● Weiterhin eignet sich MapReduce zur Verarbeitung von unstrukturierten Eingangsdaten. ● Hierdurch können die Eingangsdaten mit verschiedenen Aufgaben verarbeitet werden. ● Entsprechend ungeeignet für MapReduce sind Aufgaben, deren Eingabemenge als Ganzes durch Abhängigkeiten nicht partitionierbar sind.
  • 22. 22.05.14 Das MapReduce Framework – JobTracker und TaskTracker HADOOP HDFS MapReduce Flume Sqoop HCatalog Hue Hive Pig HBase Zookeeper Oozie Whirr Snappy Mahout Chukwa Cloudera HortonworksMapR NameNode DataNode JobTracker TaskTracker
  • 23. 22.05.14 Das MapReduce Framework ● Neben dem Programmiermodell, das als MapReduce bezeichnet wird, werden auch die spezifischen Implementierungen des Software-Frameworks als MapReduce bezeichnet. ● Das MapReduce-Framework ist für die Verarbeitung großer und verteilter Datenmengen ausgelegt. ● Es werden so genannte „Jobs“ entwickelt, die im wesentlichen aus Map- und Reduce-Funktionen bestehen. ● Das Framework übernimmt hierbei sämtliche Aufgaben, von der Verteilung der Jobs, der Parallelisierung und Planung der Einzelschritte bis hin zur Fehlerbehandlung. ● MapReduce ist ein System das für die Stapelverarbeitung („Batch“) ausgelegt ist. ● MapReduce verfolgt die Strategie, Berechnung auf den Knoten auszuführen auf denen die Daten liegen („Locality of Reference“).
  • 24. 22.05.14 Das MapReduce Framework – JobTracker ● Der JobTracker ist der Master im MapReduce-Framework und nimmt die Jobs der Clients an. ● Der JobTracker verfügt über die Informationen welche Slave- Knoten aktiv sind und aktuell Tasks ausführen können. ● Der JobTracker plant Tasks und überwacht diese auf den einzelnen Slave-Knoten (Worker). ● Equivalent zum HDFS NameNode werden sämtliche Tasks und Job-Informationen im Speicher vorgehalten.
  • 25. 22.05.14 Das MapReduce Framework – TaskTracker ● Ein TaskTracker ist der Slave im MapReduce-Framework und verarbeitet die vom JobTracker im zugewiesenen Tasks. ● Ein TaskTracker meldet periodisch den Task-Status dem JobTracker zurück. ● Ein TaskTracker läuft immer auf einem DataNode um die zu verarbeitenden Daten lokal auslesen zu können. ● Ein TaskTracker bietet eine gewisse Anzahl an Map- und Reduce- Slots an, die dem JobTracker gemeldet werden.
  • 26. 22.05.14 Das MapReduce Framework – JobTracker und TaskTracker Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 29 Map-Phase
  • 27. 22.05.14 Das MapReduce Framework – JobTracker und TaskTracker Sammer, Eric: Hadoop Operations. Sebastopol 2012, S. 31 Reduce-Phase
  • 28. 22.05.14 Vielen Dank für Ihre Aufmerksamkeit! inovex GmbH Pforzheim Karlsruher Straße 71 D-75179 Pforzheim München Valentin-Linhof-Straße 2 D-81829 München Köln Schanzenstraße 6-20 D-51063 Köln