![Page 1: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/1.jpg)
Wir unternehmen IT.
Erfahrungsbericht: Umstieg von RDBMS auf Big Data-Technologien
Karlsruhe, 30.09.2015
![Page 2: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/2.jpg)
www.consol.de
$id thgreiner
Thorsten Greiner
Teamleiter Software Development ConSol* Software GmbH, Düsseldorf
http://de.linkedin.com/in/thgreiner
Physiker, Big Data, Hadoop, Gitarre, Röhrenverstärker
![Page 3: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/3.jpg)
www.consol.de
Analyse-Backend
02.06.15
Workflow
Messen Speichern Auswerten Präsentieren
![Page 4: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/4.jpg)
www.consol.de
Analyse-Backend
02.06.15
Workflow
Messen Speichern Auswerten Präsentieren
![Page 5: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/5.jpg)
Messsysteme
• Sensoren z.B. für: – GPS – Netzwerk – UI-Events
• Online oder Offline • Datenvolumen: > 100 GB / Tag
Sensor 1
Sensor 2
Sensor 3
Zeit
![Page 6: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/6.jpg)
Kennzahlen - Visualisierung
• ca. 100 verschiedene Kennzahlen mit entsprechender Visualisierung
![Page 7: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/7.jpg)
RDBMS-basierte Lösung
Load BI
Batch
![Page 8: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/8.jpg)
Probleme
• fehlende Skalierbarkeit
• Berechnung nur auf transformierten Daten
• hohe Lizenzkosten
• kein quelloffenes System Load BI
Batch
![Page 9: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/9.jpg)
Warum Hadoop?
• Skalierbarkeit!
• ELT statt ETL – Berechnungen auf den Originaldaten
• geringere Lizenzkosten
• offenes SystemLoad BI
Batch
![Page 10: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/10.jpg)
www.consol.de
Deployment
Rechenzentrum Cloud
VS
Ramp-Up / Kontrolle
![Page 11: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/11.jpg)
Cluster in der Cloud
• Platform as a Service – Amazon Elastic MapReduce – Google App Engine MapReduce – Apache Spark für Azure HDInsight
• Infrastructure as a Service – Cluster mit API aufsetzen (Cloudera Manager/Apache Ambari) – Testen von verschiedenen Konfigurationen sehr einfach!
![Page 12: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/12.jpg)
Infrastructure as a Service
• Testen mit verschiedenen Instanztypen, z.B. EC2:
• Kosten jeweils ca. 30 € / h
Cores Memory Disk Anzahlr3.4xlarge 16 122 GiB 320 GB 20r3.8xlarge 32 244 GiB 2 x 320 GB
SSD10
d2.4xlarge 16 122 GiB 12 x 2000 GB HD
10c3.8xlarge 32 60 GiB 2 x 320 GB
SSD16
![Page 13: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/13.jpg)
Lokaler Cluster
• Standard-Hardware heisst nicht „billig“!
• Hardware-Sizing – CPUs (2x 4-8 core @ 2.x GHz) – RAM (64 - 512 GB) – HDD (12-24x 1 TB)
• Netzwerk – 2x1 GBit/s Standard, 10 GBit/s Optimum
Disks
CP
U
Speicher optimiert
BalanciertCPU optimiert
Geringer Energieverbrauch
weniger mehr
+
-
![Page 14: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/14.jpg)
RechenzentrumCloud
www.consol.de
Architektur
02.06.15
Rohdaten
Compute Cluster
Node 1 Node 2
Node 3 Node 4
Kenn-zahlen
Kenn-zahlen
Lokaler Cluster
Node 1 Node 2
![Page 15: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/15.jpg)
RechenzentrumCloud
www.consol.de
Architektur
02.06.15
Rohdaten Kenn-zahlen
Lokaler Cluster
Node 1 Node 2
Hive Impala
![Page 16: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/16.jpg)
Data Ingestion - wie kommen Daten in den Cluster?
• Ziel: Rohdaten strukturiert und effizient ablegen – geeignet partitioniert (Messsystem, Datum) – Originaldaten in Containerformaten ablegen (Sequencefiles, AVRO) – Komprimierung
• Apache Flume
Events Container
![Page 17: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/17.jpg)
Implementierung / Optionen
• Hadoop-Skriptsprachen – Pig – Hive
• Frameworks – MapReduce – Spark HDFS
YARN
MapReduce Spark
Hive Pig
![Page 18: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/18.jpg)
MapReduce
• fester Ausführungsplan • Spill-to-Disk • robust aber langsam
• Sprache: Java
D A T A
Mapper Mapper Mapper Mapper
Reducer Reducer
R R
![Page 19: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/19.jpg)
Spark
• flexibler Ausführungsplan • In-Memory-Verarbeitung • schnell aber fragil
• Sprachen: – Scala – Java – Python
D A T A
map filter keyBy keyBy
join join
R
aggregatejoin
![Page 20: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/20.jpg)
Kennzahl-Berechnung mit Spark - Erkenntnisse
• Skalierung – fast proportional mit Anzahl der Knoten – Overhead bei Input / Output
• Partitionierung – zu viele Partitionen: sehr kleine / kurze Tasks – zu große Partitionen: Stabilitätsprobleme
• Kaum Performance-Verbesserung durch Caching – Speicher in Spill-to-Memory investieren
![Page 21: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/21.jpg)
Herausforderungen mit Spark
• Ausführungsplan - Anwender hat keine direkte Kontrolle - kaum Werkzeuge für Debugging / Troubleshooting
• Programmiermodell - funktionale Programmierung ⇔ stateful vs. stateless
• Stabilität - Container werden terminiert, wenn Memory-Limits überschritten
![Page 22: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/22.jpg)
Spark-Tuning
• Ausführungsplan verstehen – Spark UI – RDD.toDebugString
• Memory-Footprint verringern – primitive Typen statt Java-Objekte
• Custom Partitioner nutzen – Shuffle über Netzwerk vermeiden
• Custom Serializer für Kryo nutzen
![Page 23: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/23.jpg)
Warum MapReduce?
• Statemachines – mit MapReduce und Secondary Sort
Sensor 1
t
Sensor 2
Sensor 3
![Page 24: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/24.jpg)
Warum MapReduce?
• Statemachines – mit MapReduce und Secondary Sort
• Stabilität – Parameter-Tuning bei Spark
Sensor 1
t
Sensor 2
Sensor 3
![Page 25: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/25.jpg)
Verarbeitungs-Pipeline
Sensordaten Container MapReduce zeitabh. Daten
Kennzahlen
Impala
![Page 26: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/26.jpg)
Ausblick
Sensordaten Container MapReduce zeitabh. Daten
Kennzahlen
DashboardImpala
![Page 27: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/27.jpg)
Big-Data-Projekte = Software-Entwicklung!
• Tools – Versionkontrolle – Continuous Integration – DevOps
• Vorgehensmodell – Anforderungsmanagement – Scrum, Kanban
![Page 28: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/28.jpg)
Big-Data-Projekte = Software-Entwicklung!
• Umgebungen – Testsystem lokal (VM) – Testcluster – Integrationscluster – Produktionscluster
• Testdaten – Unit-Tests / lokale Tests – reale Daten
![Page 29: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/29.jpg)
Hadoop - Herausforderung im Betrieb
• Sicherheit – Authentifizierung: Kerberos – RBAC: Ranger, Sentry – Perimeter Security: Knox
• Backup – Replication ersetzt kein Backup – Proprietäre Lösungen – HDFS Snapshots
![Page 30: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/30.jpg)
Fazit
• Hadoop-Cluster sind skalierbare Alternative zu RDBMS • Lokaler Cluster vs. Cloud-Lösung
– Flexibilität – Kosten – Datenschutz / -sicherheit
• MapReduce vs. Spark – Spark ist flexibler und schneller – noch Unzulänglichkeiten bei Spark – MapReduce in bestimmten Anwendungsfällen weiterhin sinnvoll
![Page 31: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/31.jpg)
www.consol.de
Danke!
02.06.15
![Page 32: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/32.jpg)
www.consol.de
ConSol* Software GmbHFranziskanerstraße 38
D-81669 München
Tel: +49-89-45841-100Fax: +49-89-45841-111
02.06.15
![Page 33: Erfahrungsbericht: Umstieg von RDBMS auf Big Data … · · 2015-10-19– Apache Spark für Azure HDInsight ... - kaum Werkzeuge für Debugging / Troubleshooting ... - Container](https://reader031.vdokument.com/reader031/viewer/2022020303/5af952457f8b9a19548c79d3/html5/thumbnails/33.jpg)
Attributions
- Cloud Computing Icon: Author: 百楽兎, Creative Commons Attribution-Share Alike 3.0 Unported license
- Hadoop Elephant Icon: Author: Intel Free Press, Creative Commons Attribution-Share Alike 2.0 Generic