Große Datenmengen und kleine gelbe Elefanten: eine vielzitierte Kombination. Aber wie sieht es in der Realität denn konkret damit aus? Dieser Praxisbericht will aufzeigen, wie man in modernen BI-Architekturen große Datenmengen mit dem Hadoop-Ökosystem erfolgreich beherrschen kann und welchen verschiedenen Herausforderungen man auf diesem Weg begegnet.
2. Zur Person Dr. Stefan Igel
‣ Seit 01/2005 als Projektleiter und
Systemarchitekt bei inovex
‣ Seit 08/2009 als Business Engineer
bei 1&1 Web.Intelligence
‣ Erstkontakt mit Hadoop 09/2009
‣ Seit 2011 Technische Projekt-
leitung für Hadoop-Projekte
‣ Seit 01/2013 Teamleiter
Big Data Solutions bei inovex
‣ stefan.igel@inovex.de
‣ www.xing.com/profile/Stefan_Igel
2
3. Zum Unternehmen Inovex Gmbh
‣ Inhabergeführtes IT-Projekthaus
‣ 120 Mitarbeiter
‣ Pforzheim / Karlsruhe / München / Köln
‣ Technologischer Fokus
‣ www.inovex.de
1 2 3 4 5
SHAPE BUILD RUN TRACK TEACH
Consulting Application Systems Business Academy
Development Engineering Intelligence
3
4. Zum Thema
‣ BI meets BIG DATA at 1&1
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
4
5. Agenda
‣ BI meets BIG DATA at 1&1
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
5
6. Das Umfeld: WEB.DE
Beispiel 1
‣ 1995 gestartet als Internet-Katalog
‣ Eines der größten deutschen
Internet-Portale mit 16,44 Mio.
Nutzern/Monat*
‣ WEB.DE FreeMail – beliebtester
deutscher Mail-Dienst mit zahlreichen
Sicherheitsfeatures
*Unique User / AGOF internet facts 2011-12 6
7. Das Umfeld: GMX
Beispiel 2
‣ FreeMail Pionier mit leistungsstarken
Mail- und Messaging-Lösungen
‣ 12,75 Mio. Nutzer/ Monat*
‣ Umfangreiche Portalangebote,
Dienste und Online-Services in
Deutschland, Österreich und der
Schweiz
‣ Internationale Mail-Angebote
in sechs Ländern
(A, CH, F, E, UK, USA),
auch unter mail.com
*Unique User / AGOF internet facts 2011-12 7
8. Die Aufgabe Anpassung der BI an steigendes
Plattform Datenvolumen
Die spaltenorientierte ‣ Verarbeitungsgeschwindigkeit
Datenbank stieß Web. nicht mehr ausreichend
an ihre Grenzen: Intelligence ‣ Aufrüstung teuer
BI Platform ‣ Begrenzte Ressourcen
Web-Analytics: 240 Files/d
200 GB/d * 90d = 18 TB
Media-Analytics: 15.000 Files/d
2.000 GB/d * 30d = 60 TB
8
9. Die Lösung SYNAPSE* Kostengünstig
und skalierbar
DWH
SYNAPSE
* SYNergetic Analytical Processing and Storage Engine
9
10. Big Data Projekte bei 1&1
Web.Intelligence
2006 2009 2011 2012 2013
Web-Analytics Erste Januar: Mai: März:
mit Spalten- Evaluierung Hadoop-Projekt Cluster-Ausbau Neue Kennzahlen
orientiertem von Hadoop „Web-Analytics“ beginnt auf 20 Knoten und Algorithmen für
Datenbank- „Web-Analytics“
System August: Juni:
Hadoop-Cluster mit Hadoop-Projekt Mai:
12 Knoten einsatzbereit „Media-Analytics“ AdHoc-Analysen
geht live: auf Rohdaten
Oktober: 1.000.000.000
Hadoop verarbeitet im Datensätze/Tag Juli:
produktiven Einsatz ca. Real-Time
200.000.000 Datensätze/ Dezember: Distributed Event
Tag Weitere Daten- Processing
lieferstrecken (Streaming)
10
10
11. Agenda
‣ BI meets BIG DATA at 1&1
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
17
13. Sizing der BI-Szenarien sind
SYNAPSE „Storage Heavy“
‣ Sizing ist bestimmt durch erforderliche
Speicherkapazität: 480 TB
‣ 78 TB Nutzdaten
(Web- + Media-Analytics)
‣ Faktor 2 für Zwischenergebnisse
und Temp-Files des Task Tracker
‣ Replikationsfaktor 3 zur
Datensicherung
‣ 480TB / 2TB / 12 = 20 Rechner
x 8 Cores = 160 CPUs!
‣ 96 GB RAM
‣ DC Limit
‣ Reserve vermeidet OOMEs
19
14. Unsere Definition von „Commodity
Hardware“
4x 1GB Network
8 Cores @2,4GHz
12 x 2TB as JBOD 96 GB RAM
direct attached
20 x Worker-Node
(Datanode, Tasktracker)
50GB local Storage 4 Cores @2,4GHz
12 GB RAM
2 x Namenode Server
(Namenode, Sec.-Namenode, Jobtracker)
20
15. Netzwerk
‣ Die Knoten eines Hadoop-Clusters sollten möglichst „nahe“ beieinander stehen
‣ und auch bei den Datenquellen
‣ dafür muss Platz im Rechenzentrum verfügbar sein
‣ Je besser die Netzwerk-Anbindung des Clusters desto besser seine
Performance
1GBit
4GBit
2GBit each
23
16. Wie kommen die …ins Cluster?
Files…
Problemstellung
‣ Paralleler Zugriff der Tasktracker über zentralen Fileserver via NFS-Mounts (Import
Rohdaten, Export von Aggregaten)
‣ Konkurrierende Zugriffe reduzieren den Durchsatz überproportional
Lösung
‣ Reduktion der Zugriffslast
‣ Mit einem Prozess im/exportieren
(hadoop –fs copyFrom/ToLocal)
‣ z. B. via Fair-Scheduler Pools
(fair-scheduler.xml:
maxMaps and maxReduces)
‣ Externe Systeme verwenden, die auf massiv
parallele Verarbeitung ausgelegt sind:
‣ z. B. Flume oder Storm für Import
24
17. Namenode
‣ Namenode =
HDFS-Metadaten-Verwaltung
(Dateien, Verzeichnisse,…)
‣ Es gibt (in Hadoop 1) nur genau Namenode Server
EINE Namenode im Cluster
Hadoop
‣ Fällt diese aus oder wird korrupt, Namenode
gibt es „keine Daten“ mehr im
FS
Cluster! Image
‣ Die Secondary Namenode dient
lediglich dem Verdichten der
FS Edit
persistierten Änderungslogs Image Logs
‣ Die Namenode ist (in Hadoop 1) ein
SPOF und muss entsprechend
abgesichert werden!
25
18. Namenode HA … selbst gestrickt
‣ Redundanz für Namenode
‣ transparent für Cluster
‣ Crash Recovery möglich
‣ Failover im Sekundenbereich
http://www.clusterlabs.org/
http://www.drbd.org/
28
19. Namenode Die gute Nachricht … zum Schluß
‣ „Namenode HA“ in Hadoop 2
ootb Zookeeper
‣ „Federated Mode“ :
2 Namenodes verwalten 1
Cluster
‣ Automatisches Failover Hadoop Hadoop
Namenode1 Namenode 2
koordiniert durch Zookeeper-
FS FS
Infrastruktur Image Image
‣ 1 Namenode „active“
‣ 1 Namenode „standy“ „standby“
„active“
‣ Hadoop 2 hat noch Beta-Status
30
20. Agenda
‣ BI meets BIG DATA
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
32
21. Wir machen unsere und schauen mal, was wir darin
Werkzeugkiste auf finden ...
33
22. Architektur Datawarehouse
BI-Plattform
Access
Reporting Adhoc Queries Data Export
DWH
Oracle 11g EE Database
4. Verfügbar machen
Reporting Layer (Dependent Datamarts)
3. Transformieren
Integration Layer (Core DWH) 2. Speichern
Acquisition Layer (Staging Area) 1. Importieren
BI Source Fileserver Replicated
Source Data
Systems Source Data
36
23. Architektur DWH + SYNAPSE
BI-Plattform
Access
Reporting Adhoc Queries (Mass-)Data Export
DWH Oracle 11g EE Database
Reporting Layer (Dependent Datamarts)
Integration Layer (Core DWH)
Acquisition Layer (Staging Area)
4. Verfügbar machen
3. Transformieren
2. Speichern
SYNAPSE 1. Importieren
Hadoop
Cluster
Mass Data Mass Data Aggregation Layer
Mass Data Integration Layer
Mass Data Acquisition Layer
BI Source Fileserver Replicated
Source Data
Systems Source Data
37
24. Framework Auswahl Feature-Set
‣ Ähnliche Toolsets unterscheiden sich oft nur in Details
‣ Queries: Pig, Hive, Cascading, …
‣ KV-Stores: HBase, Cassandra, …
‣ Streaming: Flume, Storm, …
‣ Steuerung: Askaban, Oozie, …
‣ Serialisierung: Avro, Thrift, Protocol Buffers, …
‣ …
‣ Aber gerade die können manchmal entscheidend sein!
‣ Manchmal landet man auch in Sackgassen!
39
25. Framework Auswahl Stabilität
‣ Das Hadoop-Ecosystem entwickelt sich
rasant weiter
‣ Hadoop- Kern ist bereits sehr stabil und
für den produktiven Einsatz geeignet -
aber (noch) kein Vergleich bspw. mit einer
DB-Lösung
‣ Manche Sub- und Neben-Projekte
erscheinen noch nicht ausgereift – im
Handumdrehen ist man Committer eines
OpenSource-Projektes ;-)
‣ Es kann sich lohnen, nach ein paar
Monaten wieder vorbeizuschauen!
‣ Abgestimmte Software-Versionen der
Toolsets erforderlich!
40
26. Schön, dass es Hadoop-Solution- geben Sicherheit
Distributionen gibt! Provider ...
‣ Beispiel: Cloudera
‣ Eigenes Hadoop-Release basierend auf den Apache
Hadoop-Solution-Partner geben Sicherheit
Repositories
Beispiel: Cloudera
‣ bietet! Eigenes Hadoop-Release basierendRelease-Stände“,
konsistente, „in sich schlüssige auf den Apache
PatchesRepositories
und Bugfixes
! bietet konsistente, „in sich schlüssige Release-Stände“ und
‣ Möglichkeit des kommerziellen Supports
Bugfixes
! Möglichkeit des kommerziellen Supports
41
27. Der weniger ist mehr
Technologie-Stack
4. Verfügbar machen Hive HBase Cassandra
3. Transformieren Map Reduce Pig
2. Speichern HDFS
1. Importieren Flume Storm Kafka
42
28. Agenda
‣ BI meets BIG DATA at 1&1
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
44
29. Architektur SYNAPSE
BI-Plattform
Access
Reporting Adhoc Queries (Mass-)Data Export
DWH Oracle 11g EE Database
Reporting Layer (Dependent Datamarts)
Integration Layer (Core DWH)
Acquisition Layer (Staging Area)
4. Verfügbar machen
3. Transformieren
2. Speichern
SYNAPSE 1. Importieren
Hadoop
Cluster
Mass Data Mass Data Aggregation Layer
Mass Data Integration Layer
Mass Data Acquisition Layer
BI Source Fileserver Replicated
Source Data
Systems Source Data
45
30. Importieren Herausforderungen
‣ Umgang mit verschiedenen ‣ Konvertieren in internes Format
Datenformaten ‣ Umgang mit “Late Arrivals”
‣ Semi-strukturierte Tracking- ‣ Sicherstellen einer genau
Logfiles im CSV-Format einmaligen Verarbeitung der
‣ Thrift-Logfiles Datensätze
Flexible
Input
Selector
Plain csv
thrift
…
46
31. Speichern Das Serialisierungs-
Framework
‣ Serialisierung
‣ Custom Hadoop-Writables
‣ Thrift # avro textual
representation
‣ Avro {"type": "record", "name":
"Point",
‣ Google Protocol Buffers
‣ Kompression "fields": [
‣ Snappy / LZO: Trade Offs {"name": "x", "type":
Kompressionsrate vs. CPU "int"},
‣ Partitionierung der Daten {"name": "y", "type":
‣ Struktur der Datenablage sauber "int"}
konzipieren ]
‣ Weiterverarbeitung ermöglichen }
5 8
-3 4
2 -7
52
32. Transformieren Java Map Reduce
‣ Low Level Programmierung von Map-
Reduce-Jobs map(key , value) {!
// key = byte offset in log file !
‣ Die volle Mächtigkeit von MR steht zur // value = a line in the log file!
if ( value is an account access !
Verfügung audit log) {!
account number = parse account !
‣ Java Know-How erforderlich from value!
output key = account number, !
‣ Kenntnis über Hadoop-Internas für value = 1!
effiziente Implementierung erforderlich }!
}!
‣ Design Pattern helfen bei Standard- !
reduce(key, list of values) {!
Problemen (Sort, Join, ...) // key = account number!
// list of values {1,1,1,1.....}!
‣ Bibliotheken entstehen for each value!
count = count + value!
output key , count !
}!
http://www.javacodegeeks.com/2011/05/mapreduce-soft-introduction.html 53
33. Transformieren Abstraktion
durch PIG
‣ Ursprünglich von Yahoo entwickelt
‣ File basiertes High Level Daten-Manipulations-Framework
‣ Deskriptive Sprache, die durch das Framework in Map/Reduce Jobs übersetzt
und ausgeführt wird
‣ Gut geeignet für Aggregationen, Selektionen/Projektionen, Ad-Hoc-Analysen
‣ http://hadoop.apache.org/pig/
54
35. Verfügbar machen ..mit Hive.
‣ Ad-hoc Analysen per Console oder Web-Frontend
‣ Anbindung existierender Reporting- und Analysetools über
‣ JDBC
‣ ODBC
‣ HiveQL als SQL-artige Abfragesprache
‣ Erzeugt wie PIG transparent MR-Jobs
‣ Batch-Prozess
‣ Dateien im HDFS organisieren
‣ geeignet partitionieren und indizieren
‣ Hive-Metastore DB enthält Metadaten
http://hive.apache.org 56
36. Testen und Debuggen
‣ Rapid Prototyping mit Hadoop-
Streaming
‣ Debugging im Local Mode:
‣ 1 JVM, Remote-Debugging
‣ Alle Logfiles in 1 Verzeichnis
‣ Debugging Pseudo-Distributed
‣ Logfile Analyse
‣ Zugriff über Browser Interface
‣ Debugging im Cluster: Counter
‣ Gemeinsam
http://hive.apache.org 58
37. Automatisiertes ...mit Fitnesse
Testen
- Freies OpenSource Testframework
- Kollaboratives Testen (e2e)
- Komplementär zum Unit Test
- Testdefinition im „ausführbaren Wiki“
- Verwendete Fixtures:
The fully integrated
- DBSlim (DB-Anfragen an Oracle, Hive, …) standalone wiki,
and acceptance testing
- CommandLine (Shell-Zugriff) framework:
www.fitnesse.org
- PigConsole (Zwischenergebnisse im HDFS)
- FundiCLI (Steuerung Fundi-batch)
- WriteCsvFile (Erzeugen von CSV-files)
- Setup-Suite zur Testvorbereitung
- Test-Suites zum testen 59
38. Agenda
‣ BI meets BIG DATA at 1&1
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
62
40. Mehrparteien- Wer darf wann?
Betrieb
Hadoop Job Scheduler
‣ Gleichmäßige Lastverteilung über die Zeit nach Prioritäten
‣ Verschiedene Anwendungen können konkurrierend betrieben werden
‣ Ermöglicht Adhoc-Queries mit definierten Ressourcen
Default Capacity Fair
Mechanismus Vergeben von Job-Queues mit Job-Queues und
Prioritäten pro Job festgelegten Pools mit
Prioritäten Gewichten
Funktionsfähig Ja Ja Ja
Clusterauslastung Ja Nein Ja
Gefahr von Ja Nein Nein
Starvation
65
41. Mehrparteien- Wer darf überhaupt?
Betrieb
‣ Hadoop hat ein Zugriffsberechtigungskonzept angelehnt an POSIX (ohne sticky,
setuid or setgid bits) für Files und Directories
‣ Hadoop hat keine eigene Benutzer-Authentifizierung, sondern übernimmt user
name (whoami) und group name (bash -c groups) vom aufrufenden Client-
Prozess
‣ Geeignetes Konzept für „Tool“-User oder Application Manager / Data Scientists
“… This user identity mechanism combined with the
permissions model allows a cooperative community to
share file system resources in an organized fashion.”
‣ „Sichere Hadoop Cluster“: Authentifizierung mittels Kerberos
http://hadoop.apache.org/common/docs/r0.20.2/hdfs_permissions_guide.html 66
42. Agenda
‣ BI meets BIG DATA
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
68
43. BI-Plattform Prozess-Steuerung
Access
Standard Reporting Adhoc Queries (Mass) Data Export
DWH Oracle 11g EE Database
Reporting Layer (Dependent Datamarts)
Integration Layer (Core DWH) ETL im DWH
Acquisition Layer (Staging Area)
Integration
Hadoop
Cluster
Mass Data Aggregation Layer
Mass Data Integration Layer
MR-Jobs in
Mass Data Acquisition Layer
Hadoop
BI Source WI Gateway Replicated
Source Data
Systems Fileserver Source Data
69
44. Prozess-Steuerung Anforderungen
‣ Steuerung von ETL-Prozessen im Batch-Mode
‣ Steuerung Datei-basierter Datenflüsse
‣ Verteilung der ETL-Algorithmen auf dem Cluster
‣ Integration in übergreifende Prozessketten
‣ Unterstützung des Information Lifecycle Managements
(Housekeeping)
‣ Nachvollziehbarkeit von Ladeprozessen
‣ Fehler-Toleranz durch Wiederaufsetzbarkeit
‣ Technisches und fachliches Monitoring
70
45. Das richtige für die jeweilige
Werkzeug Aufgabe
Steuerung der Verarbeitung und damit der Datenströme PDI (http://kettle.pentaho.com/)
muss über den gesamten BI-Stack sichergestellt sein! ETL-Jobs im DWH
HDFS-Zugriff
ettle
aho K
Pe n t
i ert an
deleg
GEPPI = Workflow-Engine
Übergreifende-Steuerung Functional
Dependency Integrator
‣ Hadoop Job-Ausführung
‣ Data-Repository
74
46. FUNDI Swahili für ... „Der fleißige
Handwerker“
FUNDI Job-Run
get Jar/PIG Register Hadoop-Cluster
Metadata Output-Files &
Input-Filenames Metadata
Inp. Data
Files
Run Job(name) Start MR Job
Functional
Dependency Integrator
Outp Data
Files
76
47. Agenda
‣ BI meets BIG DATA
‣ Jede Menge Blech: Die Hardware
‣ Was darf es denn sein: Das Hadoop Ecosystem
‣ Speichern, Mappen, Reduzieren
‣ Spielregeln im Cluster
‣ Der fleißige Handwerker
‣ Essenz
79
48. Best Practices
‣ Projekt: Identifiziere das richtige BIG DATA Problem
‣ Hardware: Etwas mehr schadet nicht: Alle Systeme müssen
skalieren und benötigen Reserven, Namenode HA!
‣ Frameworks: Keep Your Ecosystem Simple, weniger kann
mehr sein!
‣ Implementierung: Designe effektive und effiziente
Algorithmen!
‣ Spielregeln: Sorge für geordnete Verhältnisse im Cluster!
‣ Steuerung: Es geht auch ohne Skript-Wüste und cron-Jobs!
80
49. Ohne Fleiß Know-how muss Passende Projekte
kein Preis ... aufgebaut werden einplanen!
LIVE
Lastverhalten nur bedingt vorhersehbar
viele Tuning-Möglichkeiten, ILM,
Management der Datenflüsse, Rechte und
Ressourcen
QS
verteiltes Debuggen, qualitativ + quantitativ gute Test-
Daten, Übertragbarkeit der Testergebnisse
DEV
Best Practices / Designpattern sind zu erarbeiten, Entwicklung von
Low-level Algorithmen, „Unreife“ Frameworks, viel Prototyping
82
50. Die Belohnung: Hadoop
beeindruckt!
‣ Hadoop und sein Ecosystem bieten hervorragende
Lösungen für viele BIG DATA Probleme!
http://www.flickr.com/photos/xrm0/184379507/ 83
51. Der Nutzen Hadoop
beeindruckt
Massendatenverarbeitung bei 1&1
ist für Web- und Media-Analytics,
Logfile-Verarbeitung und
Datawarehousing
mit Hadoop messbar
‣ performanter,
‣ kostengünstiger,
‣ skalierbarer,
‣ flexibler,
‣ und zukunftsfähiger.
Vielen Dank!
84