Freiknecht / Papp Big Data in der Praxis
2. erweiterte Auflage 2018
ISBN: 978-3-446-45601-3
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
Lösungen mit Hadoop, Spark, HBase und Hive. Daten speichern, aufbereiten, visualisieren. 2. erweiterte Auflage
E-Book, Deutsch, 551 Seiten
ISBN: 978-3-446-45601-3
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
Dazu werden Sie neben den bekannten Apache-Projekten wie Hadoop, Hive und HBase auch einige weniger bekannte Frameworks wie Apache UIMA oder Apache OpenNLP kennenlernen, um gezielt die Verarbeitung unstrukturierter Daten zu lernen. Alle hier verwendeten Software-Komponenten stehen im vollen Umfang kostenlos im Internet zur Verfügung.
Gemeinsam mit den Autoren bauen Sie Schritt für Schritt viele kleinere Projekte auf bis hin zu einer fertigen und funktionstüchtigen Implementierung.
Ziel des Buches ist es, Sie auf den Effekt und den Mehrwert der neuen Möglichkeiten aufmerksam zu machen, sodass Sie diese konstruktiv in Ihr Unternehmen tragen können und für sich und Ihre Kollegen somit ein Bewusstsein für den Wert Ihrer Daten schaffen
Die zweite Auflage ergänzt das Buch um zahlreiche neue Themen wie Apache Spark, Apache Kafka und weitere Technologien, die vor allem darauf abzielen, Antwortzeiten kurz zu halten und so ein interaktives Arbeiten zu ermöglichen. Ebenso werden die für Firmen so wichtigen Themen Data Governance und Sicherheit behandelt.
Im Internet: 18 fertige Beispiel-Projekte auf Basis von Hadoop, HBase, Hive und D3.js plus Videotutorials
Dr. Jonas Freiknecht arbeitet in Landau in der Pfalz als Datenanalyst bei einem größeren IT-Systemhaus. Er hat in praktischer Informatik promoviert und erstellt seit vielen Jahren YouTube Videos zu IT-Themen, schreibt Fachbücher und veröffentlicht Tutorials auf seinem Blog.
Autoren/Hrsg.
Weitere Infos & Material
1;Inhalt;9
2;1 Einleitung;15
3;2 Big Data;21
3.1;2.1 Historische Entstehung;23
3.2;2.2 Big Data – ein passender Begriff?;24
3.2.1;2.2.1 Die drei V;25
3.2.2;2.2.2 Weitere Vs;28
3.2.3;2.2.3 Der Verarbeitungsaufwand ist big;28
3.2.4;2.2.4 Sicht der Industrie auf Big Data;29
3.3;2.3 Eingliederung in BI und Data Mining;30
4;3 Hadoop;35
4.1;3.1 Hadoop kurz vorgestellt;35
4.2;3.2 HDFS – das Hadoop Distributed File System;37
4.3;3.3 Hadoop 2.x und YARN;42
4.4;3.4 Hadoop als Single-Node-Cluster aufsetzen;44
4.4.1;3.4.1 Falls etwas nicht funktioniert;58
4.5;3.5 Map Reduce;60
4.6;3.6 Aufsetzen einer Entwicklungsumgebung;63
4.7;3.7 Implementierung eines Map-Reduce-Jobs;70
4.8;3.8 Ausführen eines Jobs über Kommandozeile;82
4.9;3.9 Verarbeitung im Cluster;86
4.10;3.10 Aufsetzen eines Hadoop-Clusters;88
4.11;3.11 Starten eines Jobs via Hadoop-API;100
4.12;3.12 Verketten von Map-Reduce-Jobs;113
4.13;3.13 Verarbeitung anderer Dateitypen;129
4.14;3.14 YARN-Anwendungen;144
4.14.1;3.14.1 Logging und Log-Aggregation in YARN;145
4.14.2;3.14.2 Eine einfache YARN-Anwendung;148
4.15;3.15 Vor- und Nachteile der verteilten Verarbeitung;173
4.16;3.16 Die Hadoop Java-API;174
4.16.1;3.16.1 Ein einfacher HDFS-Explorer;175
4.16.2;3.16.2 Cluster-Monitor;187
4.16.3;3.16.3 Überwachen der Anwendungen im Cluster;189
4.17;3.17 Gegenüberstellung zur traditionellen Verarbeitung;191
4.18;3.18 Big Data aufbereiten;192
4.18.1;3.18.1 Optimieren der Algorithmen zur Datenauswertung;192
4.18.2;3.18.2 Ausdünnung und Gruppierung;194
4.19;3.19 Ausblick auf Apache Spark;196
4.20;3.20 Markt der Big-Data-Lösungen;198
5;4 Das Hadoop-Ecosystem;201
5.1;4.1 Ambari;202
5.2;4.2 Sqoop;203
5.3;4.3 Flume;203
5.4;4.4 HBase;204
5.5;4.5 Hive;205
5.6;4.6 Pig;205
5.7;4.7 ZooKeeper;205
5.8;4.8 Oozie;206
5.9;4.9 Mahout;207
5.10;4.10 Data Analytics und das Reporting;207
6;5 NoSQL und HBase;209
6.1;5.1 Historische Entstehung;209
6.2;5.2 Das CAP-Theorem;210
6.3;5.3 ACID und BASE;211
6.4;5.4 Typen von Datenbanken;212
6.5;5.5 Umstieg von SQL und Dateisystemen auf NoSQL oder HDFS;215
6.5.1;5.5.1 Methoden der Datenmigration;215
6.6;5.6 HBase;217
6.6.1;5.6.1 Das Datenmodell von HBase;217
6.6.2;5.6.2 Aufbau von HBase;220
6.6.3;5.6.3 Installation als Stand-alone;221
6.6.4;5.6.4 Arbeiten mit der HBase Shell;223
6.6.5;5.6.5 Verteilte Installation auf dem HDFS;225
6.6.6;5.6.6 Laden von Daten;228
6.6.7;5.6.7 HBase Java-API;240
6.6.8;5.6.8 Der Umstieg von einem RDBMS auf HBase;263
7;6 Data Warehousing mit Hive;267
7.1;6.1 Installation von Hive;268
7.2;6.2 Architektur von Hive;270
7.3;6.3 Das Command Line Interface (CLI);271
7.4;6.4 HiveQL als Abfragesprache;273
7.4.1;6.4.1 Anlegen von Datenbanken;273
7.4.2;6.4.2 Primitive Datentypen;274
7.4.3;6.4.3 Komplexe Datentypen;274
7.4.4;6.4.4 Anlegen von Tabellen;275
7.4.5;6.4.5 Partitionierung von Tabellen;276
7.4.6;6.4.6 Externe und interne Tabellen;276
7.4.7;6.4.7 Löschen und Leeren von Tabellen;277
7.4.8;6.4.8 Importieren von Daten;278
7.4.9;6.4.9 Zählen von Zeilen via count;279
7.4.10;6.4.10 Das SELECT-Statement;279
7.4.11;6.4.11 Beschränken von SELECT über DISTINCT;283
7.4.12;6.4.12 SELECT auf partitionierte Tabellen;283
7.4.13;6.4.13 SELECT sortieren mit SORT BY und ORDER BY;284
7.4.14;6.4.14 Partitionieren von Daten durch Bucketing;285
7.4.15;6.4.15 Gruppieren von Daten mittels GROUP BY;286
7.4.16;6.4.16 Subqueries – verschachtelte Abfragen;287
7.4.17;6.4.17 Ergebnismengen vereinigen mit UNION ALL;287
7.4.18;6.4.18 Mathematische Funktionen;288
7.4.19;6.4.19 String-Funktionen;290
7.4.20;6.4.20 Aggregatfunktionen;290
7.4.21;6.4.21 User-Defined Functions;291
7.4.22;6.4.22 HAVING;299
7.4.23;6.4.23 Datenstruktur im HDFS;300
7.4.24;6.4.24 Verändern von Tabellen;300
7.4.25;6.4.25 Erstellen von Views;303
7.4.26;6.4.26 Löschen einer View;303
7.4.27;6.4.27 Verändern einer View;303
7.4.28;6.4.28 Tabellen zusammenführen mit JOINs;304
7.5;6.5 Hive Security;306
7.5.1;6.5.1 Implementieren eines Authentication-Providers;312
7.5.2;6.5.2 Authentication-Provider für HiveServer2;317
7.5.3;6.5.3 Verwenden von PAM zur Benutzerauthentifizierung;317
7.6;6.6 Hive und JDBC;318
7.7;6.7 Datenimport mit Sqoop;336
7.8;6.8 Datenexport mit Sqoop;338
7.9;6.9 Hive und Impala;339
7.10;6.10 Unterschied zu Pig;340
7.11;6.11 Zusammenfassung;341
8;7 Big-Data-Visualisierung;343
8.1;7.1 Theorie der Datenvisualisierung;343
8.2;7.2 Diagrammauswahl gemäß Datenstruktur;349
8.3;7.3 Visualisieren von Big Data erfordert ein Umdenken;350
8.3.1;7.3.1 Aufmerksamkeit lenken;350
8.3.2;7.3.2 Kontextsensitive Diagramme;353
8.3.3;7.3.3 3D-Diagramme;355
8.3.4;7.3.4 Ansätze, um Big-Data zu visualisieren;356
8.4;7.4 Neue Diagrammarten;358
8.5;7.5 Werkzeuge zur Datenvisualisierung;362
8.6;7.6 Entwicklung einer einfachen Visualisierungskomponente;366
9;8 Auf dem Weg zu neuem Wissen – Aufbereiten, Anreichern und Empfehlen;379
9.1;8.1 Eine Big-Data-Table als zentrale Datenstruktur;382
9.2;8.2 Anreichern von Daten;384
9.2.1;8.2.1 Anlegen einer Wissensdatenbank;385
9.2.2;8.2.2 Passende Zuordnung von Daten;386
9.3;8.3 Diagrammempfehlungen über Datentypanalyse;390
9.3.1;8.3.1 Diagrammempfehlungen in der BDTable;392
9.4;8.4 Textanalyse – Verarbeitung unstrukturierter Daten;398
9.4.1;8.4.1 Erkennung von Sprachen;399
9.4.2;8.4.2 Natural Language Processing;400
9.4.3;8.4.3 Mustererkennung mit Apache UIMA;408
10;9 Infrastruktur;429
10.1;9.1 Hardware;430
10.2;9.2 Betriebssystem;431
10.2.1;9.2.1 Paketmanager;431
10.2.2;9.2.2 Git;432
10.2.3;9.2.3 VIM;433
10.2.4;9.2.4 Terminalumgebung;433
10.3;9.3 Virtualisierung;434
10.4;9.4 Container;434
10.4.1;9.4.1 Docker-Crashkurs;435
10.4.2;9.4.2 Infrastructure as Code;438
10.5;9.5 Distributionen;438
10.6;9.6 Reproduzierbarkeit;439
10.7;9.7 Zusammenfassung;439
11;10 Programmiersprachen;441
11.1;10.1 Merkmale;442
11.1.1;10.1.1 Funktionale Paradigmen;442
11.2;10.2 Big-Data-Programmiersprachen;443
11.2.1;10.2.1 Java;443
11.2.2;10.2.2 Scala;444
11.2.3;10.2.3 Python;447
11.2.4;10.2.4 R;450
11.2.5;10.2.5 Weitere Programmiersprachen;451
11.3;10.3 Zusammenfassung;452
12;11 Polyglot Persistence;453
12.1;11.1 Praxis;454
12.1.1;11.1.1 Redis;454
12.1.2;11.1.2 MongoDB;457
12.1.3;11.1.3 Neo4j;457
12.1.4;11.1.4 S3;458
12.1.5;11.1.5 Apache Kudu;461
12.2;11.2 Zusammenfassung;461
13;12 Apache Kafka;463
13.1;12.1 Der Kern;464
13.2;12.2 Erste Schritte;464
13.3;12.3 Dockerfile;468
13.4;12.4 Clients;468
13.5;12.5 Python Chat Client;468
13.6;12.6 Zusammenfassung;470
14;13 Data Processing Engines;471
14.1;13.1 Von Map Reduce zu GPPEs;471
14.1.1;13.1.1 Herausforderungen;472
14.1.2;13.1.2 Verfahren zur Verbesserung;473
14.1.3;13.1.3 Von Batch und Streaming zu Lambda;475
14.1.4;13.1.4 Frameworks in a Nutshell;476
14.2;13.2 Apache Spark;476
14.2.1;13.2.1 Datasets;476
14.2.2;13.2.2 Von RDDs zu Data Frames;477
14.2.3;13.2.3 Hands On Apache Spark;477
14.2.4;13.2.4 Client-Programme schreiben;479
14.2.5;13.2.5 Das Spark-Ecosystem;484
14.3;13.3 Zusammenfassung;488
15;14 Streaming;489
15.1;14.1 Kernparadigmen;489
15.2;14.2 Spark Streaming;492
15.2.1;14.2.1 Beispiel;493
15.3;14.3 Apache Flink;494
15.4;14.4 Zusammenfassung;497
16;15 Data Governance;499
16.1;15.1 Begriffsdschungel;500
16.2;15.2 Governance-Pfeiler;501
16.2.1;15.2.1 Transparenz;501
16.2.2;15.2.2 Verantwortung;502
16.2.3;15.2.3 Standardisierung;503
16.3;15.3 Fokusthemen von Data Governance;503
16.3.1;15.3.1 Policies;503
16.3.2;15.3.2 Quality;504
16.3.3;15.3.3 Compliance;504
16.3.4;15.3.4 Business Intelligence;504
16.4;15.4 Datenschutz;505
16.4.1;15.4.1 Werkzeuge;506
16.5;15.5 Sicherheit im Hadoop-Ecosystem;511
16.6;15.6 Metadatenmanagement;512
16.6.1;15.6.1 Open-Source-Werkzeuge;513
16.6.2;15.6.2 Kommerzielle Datenkataloge;514
16.7;15.7 Organisatorische Themen;514
16.7.1;15.7.1 Privacy by Design;515
16.7.2;15.7.2 k-Anonymity;515
16.7.3;15.7.3 Standards;517
16.8;15.8 Zusammenfassung;517
17;16 Zusammenfassung und Ausblick;519
17.1;16.1 Zur zweiten Auflage 2018;519
17.2;16.2 Zur ersten Auflage 2014;521
18;17 Häufige Fehler;525
19;18 Anleitungen;531
19.1;18.1 Installation und Verwendung von Sqoop2;531
19.2;18.2 Hadoop für Windows 7 kompilieren;537
20;19 Literaturverzeichnis;541
21;Index;545