Big Data: Apache Hadoop Grundlagen

Werbung
,
Big Data: Apache Hadoop
Grundlagen
Seminarunterlage
Version: 1.02
Copyright ORDIX AG
Version 1.02 vom
8. September 2016
Dieses Dokument wird durch die ORDIX AG veröffentlicht.
Copyright ORDIX AG. Alle Rechte vorbehalten.
Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der
jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen.
Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der
jeweiligen Unternehmen.
Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der ORDIX AG weitergegeben
oder benutzt werden.
Adressen der ORDIX AG
Die ORDIX AG besitzt folgende Geschäftsstellen
ORDIX AG
Karl-Schurz-Straße 19a
D-33100 Paderborn
Tel.: (+49) 0 52 51 / 10 63 - 0
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
Kreuzberger Ring 13
D-65205 Wiesbaden
Tel.: (+49) 06 11 / 7 78 40 – 00
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
An der alten Ziegelei 5
D-48157 Münster
Tel.: (+49) 02 51 / 9 24 35 – 00
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
Wikingerstraße 18-20
D-51107 Köln
Tel.: (+49) 02 21 / 8 70 61 – 0
Fax.: (+49) 01 80 / 1 67 34 90
ORDIX AG
Welser Straße 9
D-86368 Gersthofen
Tel.: (+49) 08 21 / 507 492 – 0
Fax.: (+49) 01 80 / 1 67 34 90
Internet: http://www.ordix.de
Email: [email protected]
Seite 2
Big Data: Apache Hadoop Grundlagen
Version: 1.02
Copyright ORDIX AG
Inhaltsverzeichnis
Inhaltsverzeichnis
1
Agenda ......................................................................................................................................... 8
1.1
2
Wie big ist Big Data? ................................................................................................................. 10
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
3
Agenda ................................................................................................................................ 9
Agenda .............................................................................................................................. 11
Wie "big" ist Big Data? ...................................................................................................... 12
3 V Modell ......................................................................................................................... 13
Welche technischen Probleme sollen gelöst werden? ..................................................... 14
Welche fachlichen Probleme sollen gelöst werden? ........................................................ 15
Verteilte Datenhaltung im Cluster ..................................................................................... 16
Verteilte Berechnung im Cluster ....................................................................................... 17
Typische Probleme in verteilten Systemen ....................................................................... 18
Verfügbarkeit im Cluster .................................................................................................... 19
Horizontale Skalierung mit Commodity Hardware ............................................................ 20
PC Cluster ......................................................................................................................... 21
Yahoo's Hadoop Cluster (2007) ........................................................................................ 22
Zusammenfassung ............................................................................................................ 23
Hadoop Überblick ...................................................................................................................... 24
3.1
3.2
Agenda .............................................................................................................................. 25
Hadoop .............................................................................................................................. 26
3.2.1 Hadoop Historie .................................................................................................... 27
3.2.2 Hadoop Design Prinzipien .................................................................................... 28
3.2.3 "Data Locality Optimization" ................................................................................. 29
3.2.4 Hadoop Kernkomponenten .................................................................................. 30
3.3 HDFS - Hadoop Distributed File System .......................................................................... 31
3.3.1 HDFS Schreiben .................................................................................................. 32
3.3.2 HDFS Lesen ......................................................................................................... 33
3.4 Hadoop I/O ........................................................................................................................ 34
3.5 YARN - Yet Another Resource Negotiator ........................................................................ 35
3.6 MapReduce Überblick ....................................................................................................... 36
3.6.1 MapReduce Phasen ............................................................................................. 37
3.6.2 MapReduce Beispiel ............................................................................................ 38
3.6.3 MapReduce im Detail ........................................................................................... 39
3.7 Unterschiede zwischen Hadoop 1 und Hadoop 2 ............................................................. 40
3.8 Vergleich RDBMS mit Hadoop .......................................................................................... 41
3.9 Transaktionen und andere relationale Konzepte .............................................................. 42
3.10 Das Apache Hadoop Ecosystem ...................................................................................... 43
3.11 Hadoop – Stärken und Schwächen .................................................................................. 44
4
Hadoop Distributed File System .............................................................................................. 45
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
Agenda .............................................................................................................................. 46
HDFS – Hadoop Distributed File System .......................................................................... 47
HDFS Dienste ................................................................................................................... 48
NameNode ........................................................................................................................ 49
Secondary NameNode ...................................................................................................... 50
DataNode .......................................................................................................................... 51
HDFS Schreiben ............................................................................................................... 52
HDFS Lesen ...................................................................................................................... 54
Einige Besonderheiten vom HDFS ................................................................................... 56
Arbeiten mit dem HDFS .................................................................................................... 57
File System Shell .............................................................................................................. 58
4.11.1 File System Shell - Dateien kopieren ................................................................... 59
4.11.2 File System Shell – Verzeichnismanagement ...................................................... 60
4.11.3 File System Shell - Inhalt von Dateien anzeigen ................................................. 61
4.12 HDFS Kommandos ........................................................................................................... 62
4.13 Snapshots ......................................................................................................................... 63
4.14 File System APIs ............................................................................................................... 64
Version: 1.02
Copyright ORDIX AG
Seite 3
Big Data: Apache Hadoop Grundlagen
Inhaltsverzeichnis
4.15
4.16
4.17
4.18
5
Java API – FileSystem ...................................................................................................... 65
Java API - Daten schreiben .............................................................................................. 66
Java API - Daten lesen ..................................................................................................... 67
Java API - Datei löschen ................................................................................................... 68
MapReduce ................................................................................................................................ 69
Word Count – „Hello World“ für Hadoop ........................................................................... 70
Warum sollten wir überhaupt Wörter zählen? ................................................................... 71
MapReduce Überblick ....................................................................................................... 72
5.3.1 MapReduce .......................................................................................................... 73
5.3.2 MapReduce im Detail ........................................................................................... 74
5.4 Word Count – InputFormat + InputSplit ............................................................................ 75
5.4.1 InputFormat .......................................................................................................... 76
5.4.2 InputSplit............................................................................................................... 77
5.5 Word Count – RecordReader............................................................................................ 78
5.5.1 RecordReader ...................................................................................................... 79
5.6 Word Count – Mapper ....................................................................................................... 80
5.6.1 Mapper ................................................................................................................. 81
5.7 Word Count – Shuffle & Sort ............................................................................................. 82
5.8 Shuffle & Sort .................................................................................................................... 83
5.9 Word Count – Reducer ..................................................................................................... 84
5.9.1 Reducer ................................................................................................................ 85
5.10 Word Count – OutputFormat ............................................................................................. 86
5.10.1 OutputFormat ....................................................................................................... 87
5.11 Word Count – Übersicht .................................................................................................... 88
5.1
5.2
5.3
6
Der Hadoop Zoo......................................................................................................................... 89
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
7
Agenda .............................................................................................................................. 90
Der Hadoop Zoo ................................................................................................................ 91
Abfragesprachen ............................................................................................................... 92
Was ist Apache Hive? ....................................................................................................... 93
6.4.1 Hive Architektur Überblick .................................................................................... 94
6.4.2 HiveQL Beispiel .................................................................................................... 95
6.4.3 HiveQL und Beeline Befehle ................................................................................ 96
Pig ..................................................................................................................................... 97
6.5.1 Pig Architektur Überblick ...................................................................................... 98
6.5.2 Pig Latin Beispiel .................................................................................................. 99
6.5.3 Pig Latin Befehle ................................................................................................ 100
Hive vs. Pig ..................................................................................................................... 101
Sqoop .............................................................................................................................. 102
6.7.1 Sqoop 1 Architektur Überblick ............................................................................ 103
6.7.2 Sqoop Beispiele ................................................................................................. 104
6.7.3 Sqoop Kommandos ............................................................................................ 105
ZooKeeper....................................................................................................................... 106
6.8.1 ZooKeeper Architektur Überblick ....................................................................... 107
6.8.2 ZooKeeper Beispiel ............................................................................................ 108
6.8.3 ZooKeeper Kommandos .................................................................................... 109
Hive ........................................................................................................................................... 110
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
Agenda ............................................................................................................................ 111
Was ist Apache Hive? ..................................................................................................... 112
Hive Architektur im Detail ................................................................................................ 113
Hive Server Dienste ........................................................................................................ 114
Hive Clients und Interfaces ............................................................................................. 115
HiveServer2 und Metastore Installation .......................................................................... 116
Beeline Client .................................................................................................................. 117
Beeline Kommandozeilen Optionen ................................................................................ 118
Beeline Kommandos ....................................................................................................... 119
Beeline Hive Kommandos ............................................................................................... 120
JDBC Interface ................................................................................................................ 121
Seite 4
Big Data: Apache Hadoop Grundlagen
Version: 1.02
Copyright ORDIX AG
Inhaltsverzeichnis
7.12
7.13
7.14
7.15
7.16
7.17
7.18
7.19
7.20
7.21
7.22
7.23
7.24
7.25
7.26
7.27
7.28
7.29
7.30
7.31
7.32
7.33
7.34
8
Dateiformate für Hive und Hadoop ........................................................................................ 145
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
9
Hive Datenbanken und Tabellen ..................................................................................... 122
Tabellen anlegen und verwalten ..................................................................................... 123
Location ........................................................................................................................... 124
Managed Tables und External Tables ............................................................................ 125
Daten Laden .................................................................................................................... 126
Hive Datentypen .............................................................................................................. 127
Numerische Datentypen .................................................................................................. 128
String Datentypen ........................................................................................................... 129
Datum / Zeit Datentypen ................................................................................................. 130
Weitere primitive Datentypen .......................................................................................... 131
Container Datentypen ..................................................................................................... 132
Partitionen ....................................................................................................................... 133
Hive Partitionierung ......................................................................................................... 134
Statische Partitionierung ................................................................................................. 135
Dynamische Partitionierung ............................................................................................ 136
Funktionen....................................................................................................................... 137
Beispiele für Standard Hive Funktionen .......................................................................... 138
UDFs und Ressourcen .................................................................................................... 139
Java UDF Beispiel ........................................................................................................... 140
Java UDF verwenden ...................................................................................................... 141
Weitere Hive Features im Überblick................................................................................ 142
Weitere HiveQL Features im Überblick ........................................................................... 143
Hive Execution Engines im Überblick ............................................................................. 144
Agenda ............................................................................................................................ 146
Klassifizierung der Dateiformate .................................................................................... 147
Datei und Datensatz Formate in Hive ............................................................................. 148
Text Dateien (Delimiter Seperated Files) ........................................................................ 149
SequenceFile .................................................................................................................. 150
8.5.1 SequenceFile anlegen ........................................................................................ 151
Avro Dateien.................................................................................................................... 152
8.6.1 Avro Schema ...................................................................................................... 153
8.6.2 Avro Datei anlegen ............................................................................................. 154
Parquet Dateien .............................................................................................................. 155
8.7.1 Interne Struktur einer Parquet Datei .................................................................. 156
8.7.2 Parquet Schema ................................................................................................. 157
8.7.3 Parquet Datei anlegen ........................................................................................ 158
ORC Dateien ................................................................................................................... 159
8.8.1 Interne Struktur einer ORC Datei ....................................................................... 160
8.8.2 ORC Datei anlegen ............................................................................................ 161
Übersicht Dateiformate ................................................................................................... 162
Einführung in Apache Spark .................................................................................................. 163
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
9.13
9.14
9.15
9.16
Agenda ............................................................................................................................ 164
Apache Spark Überblick .................................................................................................. 165
Historie von Apache Spark .............................................................................................. 166
Spark vs. MapReduce – Kein „Entweder oder“ ............................................................... 167
MapReduce I/O ............................................................................................................... 168
Spark I/O ......................................................................................................................... 169
Spark vs. MapReduce – Zusammenfassung .................................................................. 170
Spark – Architektur .......................................................................................................... 171
Spark – Local oder im Cluster ......................................................................................... 172
Spark auf YARN – Deploy Mode..................................................................................... 173
Spark auf YARN – Job Submission Client Mode ............................................................ 174
Spark auf YARN – Job Submission Cluster Mode .......................................................... 176
Spark – Interaktiv vs. Batch-Processing ......................................................................... 177
Ausführen von Skripten über die Spark-Shell ................................................................. 178
RDD Grundlagen ............................................................................................................. 179
MaxTemperature mit Spark ............................................................................................. 180
Version: 1.02
Copyright ORDIX AG
Seite 5
Big Data: Apache Hadoop Grundlagen
Inhaltsverzeichnis
9.17
9.18
9.19
9.20
9.21
9.22
9.23
9.24
9.25
9.26
9.27
9.28
9.29
9.30
9.31
9.32
9.33
9.34
10
Fazit .......................................................................................................................................... 199
10.1
10.2
10.3
10.4
10.5
10.6
10.7
11
Erstellen von RDDs ......................................................................................................... 181
Operationen auf RDDs .................................................................................................... 182
Ausnutzung anonymer Funktionen in Scala ................................................................... 183
Operationen in Spark ...................................................................................................... 184
Transformations und Actions – Beispiele ........................................................................ 185
Umgang mit Ergebnissen ................................................................................................ 186
Zwischenspeichern (Caching) von RDDs ....................................................................... 187
Storage Level im Überblick ............................................................................................. 188
Pair RDDs ....................................................................................................................... 189
Transformations auf Pair RDDs ...................................................................................... 190
Transformations auf Keys oder Values ........................................................................... 191
Actions auf Pair RDDs .................................................................................................... 192
Beispiel: WordCount mit Spark ....................................................................................... 193
Data Partitioning .............................................................................................................. 194
Beispiel: Join auf Wetterdaten ........................................................................................ 195
Shared Variables ............................................................................................................. 196
Accumulators................................................................................................................... 197
Broadcast Variables ........................................................................................................ 198
Fazit ................................................................................................................................. 200
Nächste Schritte? ............................................................................................................ 201
ORDIX News ................................................................................................................... 202
Literatur - Hadoop ........................................................................................................... 203
Literatur - Hadoop Zoo .................................................................................................... 204
Literatur - Etc. ................................................................................................................. 205
Links ................................................................................................................................ 206
Übungen ................................................................................................................................... 207
11.1 Vorbereitungen ................................................................................................................ 208
11.1.1 Schnellstart ......................................................................................................... 208
11.1.2 Arbeiten mit der Virtuellen Maschine ................................................................. 208
11.1.2.1 Starten der Dienste................................................................................ 209
11.1.2.2 Kopieren der Daten ............................................................................... 209
11.1.2.3 Ausführen eines MapReduce Jobs ....................................................... 209
11.1.2.4 Übungen und Lösungen ........................................................................ 210
11.2 HDFS ............................................................................................................................... 211
11.2.1 Aufgaben: File System Shell .............................................................................. 211
11.2.2 Lösungen: File System Shell .............................................................................. 211
11.2.3 Aufgaben: Java API ............................................................................................ 213
11.2.4 Lösungen: Java API ........................................................................................... 214
11.3 MapReduce ..................................................................................................................... 215
11.3.1 Lösungen MapReduce ....................................................................................... 216
11.4 Hadoop Zoo..................................................................................................................... 217
11.4.1 Aufgaben Hive .................................................................................................... 217
11.4.2 Lösungen Hive ................................................................................................... 218
11.4.3 Aufgaben Pig ...................................................................................................... 220
11.4.4 Lösungen Pig ..................................................................................................... 222
11.4.5 Aufgaben Sqoop ................................................................................................. 225
11.4.6 Lösungen Sqoop ................................................................................................ 227
11.4.7 Aufgaben ZooKeeper ......................................................................................... 227
11.4.8 Lösungen ZooKeeper ......................................................................................... 228
11.5 Hive ................................................................................................................................. 231
11.5.1 Vorbereitungen ................................................................................................... 231
11.5.2 Aufgaben Beeline ............................................................................................... 231
11.5.3 Lösungen Beeline ............................................................................................... 232
11.5.4 Aufgaben Tabellen verwalten ............................................................................. 233
11.5.5 Lösungen Tabellen verwalten ............................................................................ 233
11.5.6 Aufgaben Partitionierung .................................................................................... 235
11.5.7 Lösungen Partitionierung ................................................................................... 235
Seite 6
Big Data: Apache Hadoop Grundlagen
Version: 1.02
Copyright ORDIX AG
Inhaltsverzeichnis
11.6 Dateiformate .................................................................................................................... 238
11.6.1 Vorbereitungen ................................................................................................... 238
11.6.2 Aufgaben Textdateien ........................................................................................ 238
11.6.3 Lösungen Textdateien ........................................................................................ 239
11.6.4 Aufgaben Binärdateien ....................................................................................... 240
11.6.5 Lösungen Binärdateien ...................................................................................... 240
Version: 1.02
Copyright ORDIX AG
Seite 7
Big Data: Apache Hadoop Grundlagen
Herunterladen