Jonas Freiknecht
Big Data in der Praxis
Beispiellösungen mit Hadoop und NoSQL. Daten speichern, aufbereiten, visualisieren
Inhalt
9
Vorwort
13
1 Einleitung
15
2 Big-Data
21
2.1 Historische Entstehung
22
2.2 Big-Data – ein passender Begriff?
23
2.2.1 Die drei V
24
2.2.2 Das vierte V – Veracity
27
2.2.3 Der Verarbeitungsaufwand ist big
28
2.2.4 Sicht der Industrien auf Big-Data
28
2.3 Eingliederung in BI und Data-Mining
29
3 Hadoop
33
3.1 Hadoop kurz vorgestellt
34
3.2 HDFS – das Hadoop Distributed File System
35
3.3 Hadoop 2.x und YARN
39
3.4 Hadoop als Single-Node-Cluster aufsetzen
40
3.4.1 Falls etwas nicht funktioniert
53
3.5 Map-Reduce
56
3.6 Aufsetzen einer Entwicklungsumgebung
58
3.7 Implementierung eines Map-Reduce-Jobs
65
3.8 Ausführen eines Jobs über Kommandozeile
77
3.9 Verarbeitung im Cluster
81
3.10 Aufsetzen eines Hadoop-Clusters
83
3.11 Starten eines Jobs via Hadoop-API
95
3.12 Verketten von Map-Reduce-Jobs
108
3.13 Verarbeitung anderer Dateitypen
123
3.14 YARN-Anwendungen
139
3.14.1 Logging und Log-Aggregation in YARN
139
3.14.2 Eine einfache YARN-Anwendung
143
3.15 Vor- und Nachteile der verteilten Verarbeitung
167
3.16 Die Hadoop Java-API
168
3.16.1 Ein einfacher HDFS-Explorer
169
3.16.2 Cluster-Monitor
181
3.16.3 Überwachen der Anwendungen im Cluster
183
3.17 Gegenüberstellung zur traditionellen Verarbeitung
185
3.18 Big-Data aufbereiten
186
3.18.1 Optimieren der Algorithmen zur Datenauswertung
186
3.18.2 Ausdünnung und Gruppierung
188
3.19 Ausblick auf Apache Spark
190
3.20 Markt der Big-Data-Lösungen
192
4 Das Hadoop-Ecosystem
195
4.1 Ambari
196
4.2 Sqoop
197
4.3 Flume
197
4.4 HBase
198
4.5 Hive
198
4.6 Pig
199
4.7 Zookeeper
199
4.8 Mahout
200
4.9 Spark
201
4.10 Data Analytics und das Reporting
201
5 NoSQL und HBase
203
5.1 Historische Entstehung
203
5.2 Das CAP-Theorem
204
5.3 Typen von Datenbanken
205
5.4 Umstieg von SQL und Dateisystemen auf NoSQL oder HDFS
208
5.4.1 Methoden der Datenmigration
208
5.5 HBase
210
5.5.1 Das Datenmodell von HBase
210
5.5.2 Aufbau von HBase
212
5.5.3 Installation als Stand-alone
213
5.5.4 Arbeiten mit der HBase Shell
215
5.5.5 Verteilte Installation auf dem HDFS
217
5.5.6 Laden von Daten
220
5.5.6.1 HBase Bulk Loading über die Shell
221
5.5.6.2 Datenextrakt aus einer Datenbank über Sqoop
223
5.5.7 HBase Java-API
232
5.5.8 Der Umstieg von einem RDBMS auf HBase
256
6 Data-Warehousing mit Hive
259
6.1 Installation von Hive
260
6.2 Architektur von Hive
262
6.3 Das Command Line Interface (CLI)
263
6.4 HiveQL als Abfragesprache
265
6.4.1 Anlegen von Datenbanken
265
6.4.2 Primitive Datentypen
266
6.4.3 Komplexe Datentypen
266
6.4.4 Anlegen von Tabellen
267
6.4.5 Partitionierung von Tabellen
268
6.4.6 Externe und interne Tabellen
268
6.4.7 Löschen und leeren von Tabellen
269
6.4.8 Importieren von Daten
270
6.4.9 Zählen von Zeilen via count
271
6.4.10 Das SELECT-Statement
271
6.4.11 Beschränken von SELECT über DISTINCT
274
6.4.12 SELECT auf partitionierte Tabellen
275
6.4.13 SELECT sortieren mit SORT BY und ORDER BY
275
6.4.14 Partitionieren von Daten durch Bucketing
277
6.4.15 Gruppieren von Daten mittels GROUP BY
278
6.4.16 Subqueries – verschachtelte Abfragen
279
6.4.17 Ergebnismengen vereinigen mit UNION ALL
279
6.4.18 Mathematische Funktionen
280
6.4.19 String-Funktionen
281
6.4.20 Aggregatfunktionen
282
6.4.21 User-Defined Functions
283
6.4.22 HAVING
291
6.4.23 Datenstruktur im HDFS
291
6.4.24 Verändern von Tabellen
292
6.4.25 Erstellen von Views
295
6.4.26 Löschen einer View
295
6.4.27 Verändern einer View
295
6.4.28 Tabellen zusammenführen mit JOINs
296
6.5 Hive Security
298
6.5.1 Implementieren eines Authentication-Providers
304
6.5.2 Authentication-Provider für HiveServer2
308
6.5.3 Verwenden von PAM zur Benutzerauthentifizierung
309
6.6 Hive und JDBC
310
6.7 Datenimport mit Sqoop
328
6.8 Datenexport mit Sqoop
330
6.9 Hive und Impala
331
6.10 Unterschied zu Pig
332
6.11 Zusammenfassung
333
7 Big-Data-Visualisierung
335
7.1 Theorie der Datenvisualisierung
335
7.2 Diagrammauswahl gemäß Datenstruktur
341
7.3 Visualisieren von Big-Data erfordert ein Umdenken
342
7.3.1 Aufmerksamkeit lenken
343
7.3.2 Kontextsensitive Diagramme
345
7.3.3 3D-Diagramme
347
7.3.4 Ansätze, um Big-Data zu visualisieren
348
7.4 Neue Diagrammarten
350
7.5 Werkzeuge zur Datenvisualisierung
354
7.6 Entwicklung einer einfachen Visualisierungskomponente
358
8 Auf dem Weg zu neuem Wissen – aufbereiten, anreichern und empfehlen
371
8.1 Eine Big-Data-Table als zentrale Datenstruktur
374
8.2 Anreichern von Daten
376
8.2.1 Anlegen einer Wissensdatenbank
378
8.2.2 Passende Zuordnung von Daten
378
8.3 Diagrammempfehlungen über Datentypanalyse
382
8.3.1 Diagrammempfehlungen in der BDTable
384
8.4 Textanalyse – Verarbeitung unstrukturierter Daten
390
8.4.1 Erkennung von Sprachen
391
8.4.2 Natural Language Processing
392
8.4.2.1 Klassifizierung
393
8.4.2.2 Sentiment-Analysis
398
8.4.3 Mustererkennung mit Apache UIMA
400
9 Zusammenfassung und Ausblick
419
10 Häufige Fehler
423
11 Anhang
429
11.1 Installation und Verwendung von Sqoop2
429
11.2 Hadoop für Windows 7 kompilieren
435
Literaturverzeichnis
439
Index
443
© 2009-2024 ciando GmbH