Jonas Freiknecht, Stefan Papp
Big Data in der Praxis
Lösungen mit Hadoop, Spark, HBase und Hive. Daten speichern, aufbereiten, visualisieren. 2. erweiterte Auflage
Inhalt
9
1 Einleitung
15
2 Big Data
21
2.1 Historische Entstehung
23
2.2 Big Data – ein passender Begriff?
24
2.2.1 Die drei V
25
2.2.2 Weitere Vs
28
2.2.3 Der Verarbeitungsaufwand ist big
28
2.2.4 Sicht der Industrie auf Big Data
29
2.3 Eingliederung in BI und Data Mining
30
3 Hadoop
35
3.1 Hadoop kurz vorgestellt
35
3.2 HDFS – das Hadoop Distributed File System
37
3.3 Hadoop 2.x und YARN
42
3.4 Hadoop als Single-Node-Cluster aufsetzen
44
3.4.1 Falls etwas nicht funktioniert
58
3.5 Map Reduce
60
3.6 Aufsetzen einer Entwicklungsumgebung
63
3.7 Implementierung eines Map-Reduce-Jobs
70
3.8 Ausführen eines Jobs über Kommandozeile
82
3.9 Verarbeitung im Cluster
86
3.10 Aufsetzen eines Hadoop-Clusters
88
3.11 Starten eines Jobs via Hadoop-API
100
3.12 Verketten von Map-Reduce-Jobs
113
3.13 Verarbeitung anderer Dateitypen
129
3.14 YARN-Anwendungen
144
3.14.1 Logging und Log-Aggregation in YARN
145
3.14.2 Eine einfache YARN-Anwendung
148
3.15 Vor- und Nachteile der verteilten Verarbeitung
173
3.16 Die Hadoop Java-API
174
3.16.1 Ein einfacher HDFS-Explorer
175
3.16.2 Cluster-Monitor
187
3.16.3 Überwachen der Anwendungen im Cluster
189
3.17 Gegenüberstellung zur traditionellen Verarbeitung
191
3.18 Big Data aufbereiten
192
3.18.1 Optimieren der Algorithmen zur Datenauswertung
192
3.18.2 Ausdünnung und Gruppierung
194
3.19 Ausblick auf Apache Spark
196
3.20 Markt der Big-Data-Lösungen
198
4 Das Hadoop-Ecosystem
201
4.1 Ambari
202
4.2 Sqoop
203
4.3 Flume
203
4.4 HBase
204
4.5 Hive
205
4.6 Pig
205
4.7 ZooKeeper
205
4.8 Oozie
206
4.9 Mahout
207
4.10 Data Analytics und das Reporting
207
5 NoSQL und HBase
209
5.1 Historische Entstehung
209
5.2 Das CAP-Theorem
210
5.3 ACID und BASE
211
5.4 Typen von Datenbanken
212
5.5 Umstieg von SQL und Dateisystemen auf NoSQL oder HDFS
215
5.5.1 Methoden der Datenmigration
215
5.6 HBase
217
5.6.1 Das Datenmodell von HBase
217
5.6.2 Aufbau von HBase
220
5.6.3 Installation als Stand-alone
221
5.6.4 Arbeiten mit der HBase Shell
223
5.6.5 Verteilte Installation auf dem HDFS
225
5.6.6 Laden von Daten
228
5.6.7 HBase Java-API
240
5.6.8 Der Umstieg von einem RDBMS auf HBase
263
6 Data Warehousing mit Hive
267
6.1 Installation von Hive
268
6.2 Architektur von Hive
270
6.3 Das Command Line Interface (CLI)
271
6.4 HiveQL als Abfragesprache
273
6.4.1 Anlegen von Datenbanken
273
6.4.2 Primitive Datentypen
274
6.4.3 Komplexe Datentypen
274
6.4.4 Anlegen von Tabellen
275
6.4.5 Partitionierung von Tabellen
276
6.4.6 Externe und interne Tabellen
276
6.4.7 Löschen und Leeren von Tabellen
277
6.4.8 Importieren von Daten
278
6.4.9 Zählen von Zeilen via count
279
6.4.10 Das SELECT-Statement
279
6.4.11 Beschränken von SELECT über DISTINCT
283
6.4.12 SELECT auf partitionierte Tabellen
283
6.4.13 SELECT sortieren mit SORT BY und ORDER BY
284
6.4.14 Partitionieren von Daten durch Bucketing
285
6.4.15 Gruppieren von Daten mittels GROUP BY
286
6.4.16 Subqueries – verschachtelte Abfragen
287
6.4.17 Ergebnismengen vereinigen mit UNION ALL
287
6.4.18 Mathematische Funktionen
288
6.4.19 String-Funktionen
290
6.4.20 Aggregatfunktionen
290
6.4.21 User-Defined Functions
291
6.4.22 HAVING
299
6.4.23 Datenstruktur im HDFS
300
6.4.24 Verändern von Tabellen
300
6.4.25 Erstellen von Views
303
6.4.26 Löschen einer View
303
6.4.27 Verändern einer View
303
6.4.28 Tabellen zusammenführen mit JOINs
304
6.5 Hive Security
306
6.5.1 Implementieren eines Authentication-Providers
312
6.5.2 Authentication-Provider für HiveServer2
317
6.5.3 Verwenden von PAM zur Benutzerauthentifizierung
317
6.6 Hive und JDBC
318
6.7 Datenimport mit Sqoop
336
6.8 Datenexport mit Sqoop
338
6.9 Hive und Impala
339
6.10 Unterschied zu Pig
340
6.11 Zusammenfassung
341
7 Big-Data-Visualisierung
343
7.1 Theorie der Datenvisualisierung
343
7.2 Diagrammauswahl gemäß Datenstruktur
349
7.3 Visualisieren von Big Data erfordert ein Umdenken
350
7.3.1 Aufmerksamkeit lenken
350
7.3.2 Kontextsensitive Diagramme
353
7.3.3 3D-Diagramme
355
7.3.4 Ansätze, um Big-Data zu visualisieren
356
7.4 Neue Diagrammarten
358
7.5 Werkzeuge zur Datenvisualisierung
362
7.6 Entwicklung einer einfachen Visualisierungskomponente
366
8 Auf dem Weg zu neuem Wissen – Aufbereiten, Anreichern und Empfehlen
379
8.1 Eine Big-Data-Table als zentrale Datenstruktur
382
8.2 Anreichern von Daten
384
8.2.1 Anlegen einer Wissensdatenbank
385
8.2.2 Passende Zuordnung von Daten
386
8.3 Diagrammempfehlungen über Datentypanalyse
390
8.3.1 Diagrammempfehlungen in der BDTable
392
8.4 Textanalyse – Verarbeitung unstrukturierter Daten
398
8.4.1 Erkennung von Sprachen
399
8.4.2 Natural Language Processing
400
8.4.3 Mustererkennung mit Apache UIMA
408
9 Infrastruktur
429
9.1 Hardware
430
9.2 Betriebssystem
431
9.2.1 Paketmanager
431
9.2.2 Git
432
9.2.3 VIM
433
9.2.4 Terminalumgebung
433
9.3 Virtualisierung
434
9.4 Container
434
9.4.1 Docker-Crashkurs
435
9.4.2 Infrastructure as Code
438
9.5 Distributionen
438
9.6 Reproduzierbarkeit
439
9.7 Zusammenfassung
439
10 Programmiersprachen
441
10.1 Merkmale
442
10.1.1 Funktionale Paradigmen
442
10.2 Big-Data-Programmiersprachen
443
10.2.1 Java
443
10.2.2 Scala
444
10.2.3 Python
447
10.2.4 R
450
10.2.5 Weitere Programmiersprachen
451
10.3 Zusammenfassung
452
11 Polyglot Persistence
453
11.1 Praxis
454
11.1.1 Redis
454
11.1.2 MongoDB
457
11.1.3 Neo4j
457
11.1.4 S3
458
11.1.5 Apache Kudu
461
11.2 Zusammenfassung
461
12 Apache Kafka
463
12.1 Der Kern
464
12.2 Erste Schritte
464
12.3 Dockerfile
468
12.4 Clients
468
12.5 Python Chat Client
468
12.6 Zusammenfassung
470
13 Data Processing Engines
471
13.1 Von Map Reduce zu GPPEs
471
13.1.1 Herausforderungen
472
13.1.2 Verfahren zur Verbesserung
473
13.1.3 Von Batch und Streaming zu Lambda
475
13.1.4 Frameworks in a Nutshell
476
13.2 Apache Spark
476
13.2.1 Datasets
476
13.2.2 Von RDDs zu Data Frames
477
13.2.3 Hands On Apache Spark
477
13.2.4 Client-Programme schreiben
479
13.2.5 Das Spark-Ecosystem
484
13.3 Zusammenfassung
488
14 Streaming
489
14.1 Kernparadigmen
489
14.2 Spark Streaming
492
14.2.1 Beispiel
493
14.3 Apache Flink
494
14.4 Zusammenfassung
497
15 Data Governance
499
15.1 Begriffsdschungel
500
15.2 Governance-Pfeiler
501
15.2.1 Transparenz
501
15.2.2 Verantwortung
502
15.2.3 Standardisierung
503
15.3 Fokusthemen von Data Governance
503
15.3.1 Policies
503
15.3.2 Quality
504
15.3.3 Compliance
504
15.3.4 Business Intelligence
504
15.4 Datenschutz
505
15.4.1 Werkzeuge
506
15.5 Sicherheit im Hadoop-Ecosystem
511
15.6 Metadatenmanagement
512
15.6.1 Open-Source-Werkzeuge
513
15.6.2 Kommerzielle Datenkataloge
514
15.7 Organisatorische Themen
514
15.7.1 Privacy by Design
515
15.7.2 k-Anonymity
515
15.7.3 Standards
517
15.8 Zusammenfassung
517
16 Zusammenfassung und Ausblick
519
16.1 Zur zweiten Auflage 2018
519
16.2 Zur ersten Auflage 2014
521
17 Häufige Fehler
525
18 Anleitungen
531
18.1 Installation und Verwendung von Sqoop2
531
18.2 Hadoop für Windows 7 kompilieren
537
19 Literaturverzeichnis
541
Index
545
© 2009-2025 ciando GmbH