MapReduce in der Praxis
MapReduce Entwurfsmuster
Sascha Dittmann
Blog: http://www.sascha-dittmann.de
Twitter: @SaschaDittm...
Organizer
SQLSaturday Rheinland 201428.06.2014
You Rock! Sponsor
SQLSaturday Rheinland 201428.06.2014
Gold Sponsor
SQLSaturday Rheinland 201428.06.2014
Silver Sponsor
SQLSaturday Rheinland 201428.06.2014
Bronze Sponsor and Media Partner
SQLSaturday Rheinland 201428.06.2014
WAS IST BIG DATA?
Wo liegt das Problem?
28.06.2014 SQLSaturday Rheinland 2014
Wo liegt das Problem?
28.06.2014 SQLSaturday Rheinland 2014
"eins, zwei, zwei, drei, drei, drei, vier, vier, vier, vier"
....
Die 3 V’s
28.06.2014 SQLSaturday Rheinland 2014
Variety
Velocity
• Variety (Vielfalt)
• Relational, XML, Video, Text, ...
...
Skalierung
28.06.2014 SQLSaturday Rheinland 2014
Vertikale Skalierung Horizontale Skalierung
WAS IST HADOOP / HDINSIGHT
Auf der Suche nach Lösungen
28.06.2014 SQLSaturday Rheinland 2014
Apache Hadoop / Microsoft HDInsight
28.06.2014 SQLSaturday Rheinland 2014
+
Apache Hadoop 1.x Ecosystem
28.06.2014 SQLSaturday Rheinland 2014
MapReduce (Job Scheduling/Execution System)
HDFS
(Hadoop...
Microsoft HDInsight
28.06.2014 SQLSaturday Rheinland 2014
MapReduce (Job Scheduling/Execution System)
HDFS
(Hadoop Distrib...
THE HADOOP CORE
HDFS + MapReduce
28.06.2014 SQLSaturday Rheinland 2014
Hadoop Distributed File System (HDFS)
28.06.2014 SQLSaturday Rheinland 2014
 Portable Operating System Interface (POSIX)
...
Map/Reduce am Beispiel von Messdaten
28.06.2014 SQLSaturday Rheinland 2014
0067011990999991950051507004+68750+023550FM-12+...
Map/Reduce am Beispiel von Messdaten
28.06.2014 SQLSaturday Rheinland 2014
0067011990999991950051507004+68750+023550FM-12+...
Map/Reduce
28.06.2014 SQLSaturday Rheinland 2014
Map
Sort
Shuffle
DataNode
Map
Sort
Shuffle
DataNode
Map
Sort
Shuffle
Data...
Map/Reduce mit Combiner-Funktion
28.06.2014 SQLSaturday Rheinland 2014
Map
Combine
Sort
Shuffle
DataNode
Map
Combine
Sort
...
Map/Reduce mit Combiner-Funktion
28.06.2014 SQLSaturday Rheinland 2014
Map
Combine
Sort
Shuffle
DataNode
Map
Combine
Sort
...
NUMERISCHE AGGREGATION
MapReduce Entwurfsmuster
28.06.2014 SQLSaturday Rheinland 2014
Numerische Aggregation (T-SQL)
SELECT MIN(CreationDate)
, MAX(CreationDate)
, COUNT(UserId)
FROM dbo.Comments
GROUP BY Use...
Min. / Max. / Count (MapReduce)
28.06.2014 SQLSaturday Rheinland 2014
Min. / Max. / Count (Datenfluß)
28.06.2014 SQLSaturday Rheinland 2014
UserId Min Max Count
12345 14.06.2001 14.06.2001 1
1...
Standardabweichung / Median
28.06.2014 SQLSaturday Rheinland 2014
Standardabweichung / Median (Datenfluß)
28.06.2014 SQLSaturday Rheinland 2014
UserId Length
4 18
4 14
4 18
3 4
3 4
9 19
Ho...
Schnelles Zählen mit Countern
28.06.2014 SQLSaturday Rheinland 2014
FILTERN
MapReduce Entwurfsmuster
28.06.2014 SQLSaturday Rheinland 2014
Filtern (T-SQL)
SELECT *
FROM dbo.Table
WHERE Value < 42
28.06.2014 SQLSaturday Rheinland 2014
TOP / DISTINCT
28.06.2014 SQLSaturday Rheinland 2014
DATEN ORGANISIEREN
MapReduce Entwurfsmuster
28.06.2014 SQLSaturday Rheinland 2014
Struktur ändern / Partitionen / Sortierung
28.06.2014 SQLSaturday Rheinland 2014
JOINS
MapReduce Entwurfsmuster
28.06.2014 SQLSaturday Rheinland 2014
Filtern (T-SQL)
SELECT *
FROM dbo.Table1 T1
JOIN dbo.Table2 T2
ON T1.ID = T2.ID
28.06.2014 SQLSaturday Rheinland 2014
JOINS
28.06.2014 SQLSaturday Rheinland 2014
Code Beispiele
 C#
https://github.com/SaschaDittmann/MapReduceSamples
 Java
https://github.com/SaschaDittmann/MapReduceS...
Thank you!
for sponsorship
for volunteering
for participation
for a great
SQLSaturday #313
SQLSaturday Rheinland 201428.06...
Nächste SlideShare
Wird geladen in …5
×

SQL Saturday #313 Rheinland - MapReduce in der Praxis

558 Aufrufe

Veröffentlicht am

Das Programmiermodel MapReduce, welches vor einigen Jahren von Google veröffentlicht wurde, hat Einzug in zahlreiche Systeme erhalten. Dabei wurde es sowohl als eigenständiges System, wie beispielweise bei Hadoop, Disco oder Amazon Elastic MapReduce, aber auch als Abfragesprache innerhalb größerer Systeme, wie beispielweise bei MongoDB, Greenplum DB oder Aster Data, implementiert. Diese Session stellt gängige Problemstellungen aus der Praxis vor und wie diese mit dem MapReduce Framework von Microsoft HDInsight umgesetzt werden können.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
558
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

SQL Saturday #313 Rheinland - MapReduce in der Praxis

  1. 1. MapReduce in der Praxis MapReduce Entwurfsmuster Sascha Dittmann Blog: http://www.sascha-dittmann.de Twitter: @SaschaDittmann
  2. 2. Organizer SQLSaturday Rheinland 201428.06.2014
  3. 3. You Rock! Sponsor SQLSaturday Rheinland 201428.06.2014
  4. 4. Gold Sponsor SQLSaturday Rheinland 201428.06.2014
  5. 5. Silver Sponsor SQLSaturday Rheinland 201428.06.2014
  6. 6. Bronze Sponsor and Media Partner SQLSaturday Rheinland 201428.06.2014
  7. 7. WAS IST BIG DATA? Wo liegt das Problem? 28.06.2014 SQLSaturday Rheinland 2014
  8. 8. Wo liegt das Problem? 28.06.2014 SQLSaturday Rheinland 2014 "eins, zwei, zwei, drei, drei, drei, vier, vier, vier, vier" .Split (',') .GroupBy (x => x) .ToList () .ForEach (g => Console.WriteLine ( “{0} wurde {1} mal gefunden.", g.Key.Trim(), g.Count() ));
  9. 9. Die 3 V’s 28.06.2014 SQLSaturday Rheinland 2014 Variety Velocity • Variety (Vielfalt) • Relational, XML, Video, Text, ... • Velocity (Geschwindigkeit) • Batch, Intervall, Echtzeit, ... • Volume (Menge) • KB, MB, GB, TB, EB, PB, ZB, YB, ... Volume
  10. 10. Skalierung 28.06.2014 SQLSaturday Rheinland 2014 Vertikale Skalierung Horizontale Skalierung
  11. 11. WAS IST HADOOP / HDINSIGHT Auf der Suche nach Lösungen 28.06.2014 SQLSaturday Rheinland 2014
  12. 12. Apache Hadoop / Microsoft HDInsight 28.06.2014 SQLSaturday Rheinland 2014 +
  13. 13. Apache Hadoop 1.x Ecosystem 28.06.2014 SQLSaturday Rheinland 2014 MapReduce (Job Scheduling/Execution System) HDFS (Hadoop Distributed File System) HBase (Column DB) Pig (Data Flow) Hive (Warehouse and Data Access) Oozie (Workflow) Sqoop Traditional BI Tools HBase / Cassandra (Columnar NoSQL Databases) Avro(Serialization) Zookeeper(Coordination) Apache Mahout Cascading (programming model) Hadoop = MapReduce + HDFS Flume
  14. 14. Microsoft HDInsight 28.06.2014 SQLSaturday Rheinland 2014 MapReduce (Job Scheduling/Execution System) HDFS (Hadoop Distributed File System) HBase (Column DB) Pig (Data Flow) Hive (Warehous e and Data Access) Oozie (Workflow) Sqoop Traditional BI Tools HBase / Cassandra (Columnar NoSQL Databases) Avro(Serialization) Zookeeper(Coordination) Apache Mahout Cascading (programming model) Hadoop = MapReduce + HDFS Flume Windows SystemCenter ActiveDirectory Visual Studio
  15. 15. THE HADOOP CORE HDFS + MapReduce 28.06.2014 SQLSaturday Rheinland 2014
  16. 16. Hadoop Distributed File System (HDFS) 28.06.2014 SQLSaturday Rheinland 2014  Portable Operating System Interface (POSIX)  Replikation auf mehrere Datenknoten js> #ls /user/Sascha/input/ncdc Found 9 items drwxr-xr-x - Sascha supergroup 0 2013-04-24 13:09 /user/Sascha/input/ncdc/all drwxr-xr-x - Sascha supergroup 0 2013-04-24 13:01 /user/Sascha/input/ncdc/all2 drwxr-xr-x - Sascha supergroup 0 2013-04-23 13:06 /user/Sascha/input/ncdc/metadata drwxr-xr-x - Sascha supergroup 0 2013-04-23 13:06 /user/Sascha/input/ncdc/micro drwxr-xr-x - Sascha supergroup 0 2013-04-23 13:06 /user/Sascha/input/ncdc/micro-tab -rw-r--r-- 3 Sascha supergroup 529 2013-04-23 13:06 /user/Sascha/input/ncdc/sample.txt -rw-r--r-- 3 Sascha supergroup 168 2013-04-23 13:06 /user/Sascha/input/ncdc/sample.txt.gz
  17. 17. Map/Reduce am Beispiel von Messdaten 28.06.2014 SQLSaturday Rheinland 2014 0067011990999991950051507004+68750+023550FM-12+038299999V0203301N00671220001CN9999999N9+00001+99999999999 0043011990999991950051512004+68750+023550FM-12+038299999V0203201N00671220001CN9999999N9+00221+99999999999 0043011990999991950051518004+68750+023550FM-12+038299999V0203201N00261220001CN9999999N9-00111+99999999999 0043012650999991949032412004+62300+010750FM-12+048599999V0202701N00461220001CN0500001N9+01111+99999999999 0043012650999991949032418004+62300+010750FM-12+048599999V0202701N00461220001CN0500001N9+00781+99999999999 Jahr Lufttemperatur
  18. 18. Map/Reduce am Beispiel von Messdaten 28.06.2014 SQLSaturday Rheinland 2014 0067011990999991950051507004+68750+023550FM-12+038299999V0203301N00671220001CN9999999N9+00001+99999999999 0043011990999991950051512004+68750+023550FM-12+038299999V0203201N00671220001CN9999999N9+00221+99999999999 0043011990999991950051518004+68750+023550FM-12+038299999V0203201N00261220001CN9999999N9-00111+99999999999 0043012650999991949032412004+62300+010750FM-12+048599999V0202701N00461220001CN0500001N9+01111+99999999999 0043012650999991949032418004+62300+010750FM-12+048599999V0202701N00461220001CN0500001N9+00781+99999999999 Messqualität
  19. 19. Map/Reduce 28.06.2014 SQLSaturday Rheinland 2014 Map Sort Shuffle DataNode Map Sort Shuffle DataNode Map Sort Shuffle DataNode Reduce 0067011990999991950051507004+68750 0043011990999991950051512004+68750 0043011990999991950051518004+68750 0043012650999991949032412004+62300 0043012650999991949032418004+62300 1949,0 1950,22 1950,55 1952,-11 1950,33 1949,0 1950,[22,33,55] 1952,-11 1949,0 1950,55 1952,-11
  20. 20. Map/Reduce mit Combiner-Funktion 28.06.2014 SQLSaturday Rheinland 2014 Map Combine Sort Shuffle DataNode Map Combine Sort Shuffle DataNode Map Combine Sort Shuffle DataNode Reduce 0067011990999991950051507004+68750 0043011990999991950051512004+68750 0043011990999991950051518004+68750 0043012650999991949032412004+62300 0043012650999991949032418004+62300 1949,0 1950,22 1950,55 1952,-11 1950,33 1949,0 1950,55 1952,-11 1950,33 1949,0 1950,[33,55] 1952,-11 1949,0 1950,55 1952,-11
  21. 21. Map/Reduce mit Combiner-Funktion 28.06.2014 SQLSaturday Rheinland 2014 Map Combine Sort Shuffle DataNode Map Combine Sort Shuffle DataNode Map Combine Sort Shuffle DataNode Reduce 0067011990999991950051507004+68750 0043011990999991950051512004+68750 0043011990999991950051518004+68750 0043012650999991949032412004+62300 0043012650999991949032418004+62300 1949,0 1950,22 1950,55 1952,-11 1950,33 1949,0 1950,55 1952,-11 1950,33 1949,0 1950,[33,55] 1952,-11 1949,0 1950,55 1952,-11 Partitioner (Key % Anzahl der Reducer)
  22. 22. NUMERISCHE AGGREGATION MapReduce Entwurfsmuster 28.06.2014 SQLSaturday Rheinland 2014
  23. 23. Numerische Aggregation (T-SQL) SELECT MIN(CreationDate) , MAX(CreationDate) , COUNT(UserId) FROM dbo.Comments GROUP BY UserId 28.06.2014 SQLSaturday Rheinland 2014
  24. 24. Min. / Max. / Count (MapReduce) 28.06.2014 SQLSaturday Rheinland 2014
  25. 25. Min. / Max. / Count (Datenfluß) 28.06.2014 SQLSaturday Rheinland 2014 UserId Min Max Count 12345 14.06.2001 14.06.2001 1 12345 11.01.1995 11.01.1995 1 12345 23.05.2009 23.05.2009 1 56789 23.06.1996 23.06.1996 1 56789 05.07.1997 05.07.1997 1 52737 06.12.2000 06.12.2000 1 UserId Min Max Count 12345 11.01.1995 23.05.2009 3 52737 06.12.2000 06.12.2000 1 56789 23.06.1996 05.07.1997 2 Mapper Combiner / Reducer
  26. 26. Standardabweichung / Median 28.06.2014 SQLSaturday Rheinland 2014
  27. 27. Standardabweichung / Median (Datenfluß) 28.06.2014 SQLSaturday Rheinland 2014 UserId Length 4 18 4 14 4 18 3 4 3 4 9 19 Hour Length / Count Pairs 3 4:2, 4 18:2, 14:1 9 19:1 Mapper Combiner Reducer
  28. 28. Schnelles Zählen mit Countern 28.06.2014 SQLSaturday Rheinland 2014
  29. 29. FILTERN MapReduce Entwurfsmuster 28.06.2014 SQLSaturday Rheinland 2014
  30. 30. Filtern (T-SQL) SELECT * FROM dbo.Table WHERE Value < 42 28.06.2014 SQLSaturday Rheinland 2014
  31. 31. TOP / DISTINCT 28.06.2014 SQLSaturday Rheinland 2014
  32. 32. DATEN ORGANISIEREN MapReduce Entwurfsmuster 28.06.2014 SQLSaturday Rheinland 2014
  33. 33. Struktur ändern / Partitionen / Sortierung 28.06.2014 SQLSaturday Rheinland 2014
  34. 34. JOINS MapReduce Entwurfsmuster 28.06.2014 SQLSaturday Rheinland 2014
  35. 35. Filtern (T-SQL) SELECT * FROM dbo.Table1 T1 JOIN dbo.Table2 T2 ON T1.ID = T2.ID 28.06.2014 SQLSaturday Rheinland 2014
  36. 36. JOINS 28.06.2014 SQLSaturday Rheinland 2014
  37. 37. Code Beispiele  C# https://github.com/SaschaDittmann/MapReduceSamples  Java https://github.com/SaschaDittmann/MapReduceSamplesJava  Blog Posts http://www.sascha-dittmann.de/?tag=/MapReduce 28.06.2014 SQLSaturday Rheinland 2014
  38. 38. Thank you! for sponsorship for volunteering for participation for a great SQLSaturday #313 SQLSaturday Rheinland 201428.06.2014

×