Titelei
Impressum
Inhalt
Widmung
1 Einleitung
2 Big Data
2.1 Historische Entstehung
2.2 Big Data – ein passender Begriff?
2.2.1 Die drei V
2.2.2 Weitere Vs
2.2.3 Der Verarbeitungsaufwand ist big
2.2.4 Sicht der Industrie auf Big Data
2.3 Eingliederung in BI und Data Mining
3 Hadoop
3.1 Hadoop kurz vorgestellt
3.2 HDFS – das Hadoop Distributed File System
3.3 Hadoop 2.x und YARN
3.4 Hadoop als Single-Node-Cluster aufsetzen
3.4.1 Falls etwas nicht funktioniert
3.5 Map Reduce
3.6 Aufsetzen einer Entwicklungsumgebung
3.7 Implementierung eines Map-Reduce-Jobs
3.8 Ausführen eines Jobs über Kommandozeile
3.9 Verarbeitung im Cluster
3.10 Aufsetzen eines Hadoop-Clusters
3.11 Starten eines Jobs via Hadoop-API
3.12 Verketten von Map-Reduce-Jobs
3.13 Verarbeitung anderer Dateitypen
3.14 YARN-Anwendungen
3.14.1 Logging und Log-Aggregation in YARN
3.14.2 Eine einfache YARN-Anwendung
3.15 Vor- und Nachteile der verteilten Verarbeitung
3.16 Die Hadoop Java-API
3.16.1 Ein einfacher HDFS-Explorer
3.16.2 Cluster-Monitor
3.16.3 Überwachen der Anwendungen im Cluster
3.17 Gegenüberstellung zur traditionellen Verarbeitung
3.18 Big Data aufbereiten
3.18.1 Optimieren der Algorithmen zur Datenauswertung
3.18.2 Ausdünnung und Gruppierung
3.19 Ausblick auf Apache Spark
3.20 Markt der Big-Data-Lösungen
4 Das Hadoop-Ecosystem
4.1 Ambari
4.2 Sqoop
4.3 Flume
4.4 HBase
4.5 Hive
4.6 Pig
4.7 ZooKeeper
4.8 Oozie
4.9 Mahout
4.10 Data Analytics und das Reporting
5 NoSQL und HBase
5.1 Historische Entstehung
5.2 Das CAP-Theorem
5.3 ACID und BASE
5.4 Typen von Datenbanken
5.5 Umstieg von SQL und Dateisystemen auf NoSQL oder HDFS
5.5.1 Methoden der Datenmigration
5.6 HBase
5.6.1 Das Datenmodell von HBase
5.6.2 Aufbau von HBase
5.6.3 Installation als Stand-alone
5.6.4 Arbeiten mit der HBase Shell
5.6.5 Verteilte Installation auf dem HDFS
5.6.6 Laden von Daten
5.6.7 HBase Java-API
5.6.8 Der Umstieg von einem RDBMS auf HBase
6 Data Warehousing mit Hive
6.1 Installation von Hive
6.2 Architektur von Hive
6.3 Das Command Line Interface (CLI)
6.4 HiveQL als Abfragesprache
6.4.1 Anlegen von Datenbanken
6.4.2 Primitive Datentypen
6.4.3 Komplexe Datentypen
6.4.4 Anlegen von Tabellen
6.4.5 Partitionierung von Tabellen
6.4.6 Externe und interne Tabellen
6.4.7 Löschen und Leeren von Tabellen
6.4.8 Importieren von Daten
6.4.9 Zählen von Zeilen via count
6.4.10 Das SELECT-Statement
6.4.11 Beschränken von SELECT über DISTINCT
6.4.12 SELECT auf partitionierte Tabellen
6.4.13 SELECT sortieren mit SORT BY und ORDER BY
6.4.14 Partitionieren von Daten durch Bucketing
6.4.15 Gruppieren von Daten mittels GROUP BY
6.4.16 Subqueries – verschachtelte Abfragen
6.4.17 Ergebnismengen vereinigen mit UNION ALL
6.4.18 Mathematische Funktionen
6.4.19 String-Funktionen
6.4.20 Aggregatfunktionen
6.4.21 User-Defined Functions
6.4.22 HAVING
6.4.23 Datenstruktur im HDFS
6.4.24 Verändern von Tabellen
6.4.25 Erstellen von Views
6.4.26 Löschen einer View
6.4.27 Verändern einer View
6.4.28 Tabellen zusammenführen mit JOINs
6.5 Hive Security
6.5.1 Implementieren eines Authentication-Providers
6.5.2 Authentication-Provider für HiveServer2
6.5.3 Verwenden von PAM zur Benutzerauthentifizierung
6.6 Hive und JDBC
6.7 Datenimport mit Sqoop
6.8 Datenexport mit Sqoop
6.9 Hive und Impala
6.10 Unterschied zu Pig
6.11 Zusammenfassung
7 Big-Data-Visualisierung
7.1 Theorie der Datenvisualisierung
7.2 Diagrammauswahl gemäß Datenstruktur
7.3 Visualisieren von Big Data erfordert ein Umdenken
7.3.1 Aufmerksamkeit lenken
7.3.2 Kontextsensitive Diagramme
7.3.3 3D-Diagramme
7.3.4 Ansätze, um Big-Data zu visualisieren
7.4 Neue Diagrammarten
7.5 Werkzeuge zur Datenvisualisierung
7.6 Entwicklung einer einfachen Visualisierungskomponente
8 Auf dem Weg zu neuem Wissen – Aufbereiten, Anreichern und Empfehlen
8.1 Eine Big-Data-Table als zentrale Datenstruktur
8.2 Anreichern von Daten
8.2.1 Anlegen einer Wissensdatenbank
8.2.2 Passende Zuordnung von Daten
8.3 Diagrammempfehlungen über Datentypanalyse
8.3.1 Diagrammempfehlungen in der BDTable
8.4 Textanalyse – Verarbeitung unstrukturierter Daten
8.4.1 Erkennung von Sprachen
8.4.2 Natural Language Processing
8.4.3 Mustererkennung mit Apache UIMA
9 Infrastruktur
9.1 Hardware
9.2 Betriebssystem
9.2.1 Paketmanager
9.2.2 Git
9.2.3 VIM
9.2.4 Terminalumgebung
9.3 Virtualisierung
9.4 Container
9.4.1 Docker-Crashkurs
9.4.2 Infrastructure as Code
9.5 Distributionen
9.6 Reproduzierbarkeit
9.7 Zusammenfassung
10 Programmiersprachen
10.1 Merkmale
10.1.1 Funktionale Paradigmen
10.2 Big-Data-Programmiersprachen
10.2.1 Java
10.2.2 Scala
10.2.3 Python
10.2.4 R
10.2.5 Weitere Programmiersprachen
10.3 Zusammenfassung
11 Polyglot Persistence
11.1 Praxis
11.1.1 Redis
11.1.2 MongoDB
11.1.3 Neo4j
11.1.4 S3
11.1.5 Apache Kudu
11.2 Zusammenfassung
12 Apache Kafka
12.1 Der Kern
12.2 Erste Schritte
12.3 Dockerfile
12.4 Clients
12.5 Python Chat Client
12.6 Zusammenfassung
13 Data Processing Engines
13.1 Von Map Reduce zu GPPEs
13.1.1 Herausforderungen
13.1.2 Verfahren zur Verbesserung
13.1.3 Von Batch und Streaming zu Lambda
13.1.4 Frameworks in a Nutshell
13.2 Apache Spark
13.2.1 Datasets
13.2.2 Von RDDs zu Data Frames
13.2.3 Hands On Apache Spark
13.2.4 Client-Programme schreiben
13.2.5 Das Spark-Ecosystem
13.3 Zusammenfassung
14 Streaming
14.1 Kernparadigmen
14.2 Spark Streaming
14.2.1 Beispiel
14.3 Apache Flink
14.4 Zusammenfassung
15 Data Governance
15.1 Begriffsdschungel
15.2 Governance-Pfeiler
15.2.1 Transparenz
15.2.2 Verantwortung
15.2.3 Standardisierung
15.3 Fokusthemen von Data Governance
15.3.1 Policies
15.3.2 Quality
15.3.3 Compliance
15.3.4 Business Intelligence
15.4 Datenschutz
15.4.1 Werkzeuge
15.5 Sicherheit im Hadoop-Ecosystem
15.6 Metadatenmanagement
15.6.1 Open-Source-Werkzeuge
15.6.2 Kommerzielle Datenkataloge
15.7 Organisatorische Themen
15.7.1 Privacy by Design
15.7.2 k-Anonymity
15.7.3 Standards
15.8 Zusammenfassung
16 Zusammenfassung und Ausblick
16.1 Zur zweiten Auflage 2018
16.2 Zur ersten Auflage 2014
17 Häufige Fehler
18 Anleitungen
18.1 Installation und Verwendung von Sqoop2
18.2 Hadoop für Windows 7 kompilieren
19 Literaturverzeichnis
Jonas Freiknecht
Stefan Papp
Big Data in der Praxis
Lösungen mit Hadoop, Spark, HBase und Hive
Daten speichern, aufbereiten, visualisieren
2., erweiterte Auflage
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.
Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2018 Carl Hanser Verlag München
www.hanser-fachbuch.de
Lektorat: Sylvia Hasselbach
Copyediting: Jürgen Dubau, Freiburg/Elbe
Umschlagdesign: Marc Müller-Bremer, München, www.rebranding.de
Umschlagrealisation: Stephan Rönigk
Print-ISBN 978-3-446-45396-8
E-Book-ISBN 978-3-446-45601-3
Verwendete Schriften: SourceSansPro und SourceCodePro (Lizenz)
CSS-Version: 1.0
Font License | Zurück zum Impressum |
Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Widmung |
„Wenn Du schnell gehen willst, geh allein. Wenn Du weit gehen willst, geh mit anderen.“
Afrikanisches Sprichwort
1 | Einleitung |
Der Begriff Big Data ist seit der ersten Auflage im Jahr 2014 zu einem zentralen Thema in der IT-Landschaft von Unternehmen geworden. Kaum jemand spricht noch von einem kurzfristigen Hype. Big-Data-Technologien bestimmen auch den Inhalt vieler Fachzeitschriften und -bücher.
Mit Apache Hadoop und NoSQL-Datenbanken können große, meist unstrukturierte Datenmengen effizient verteilt verarbeitet werden. Darüber hinaus haben in der letzten Zeit Data Processing Engines wie Apache Spark und Messaging-Systemen wie Kafka an Popularität gewonnen, da sie neue Möglichkeiten bieten, wie noch schneller Wert aus Daten extrahiert werden kann. Machine-Learning- und Deep-Learning-Werkzeuge sind mittlerweile ebenfalls ein wesentlicher Teil einer Big-Data-Systemlandschaft.
In den Medien wird häufig der generelle Mehrwert, der durch den Einsatz von Big-Data-Technologien für Banken, Automobilhersteller, Forschungseinrichtungen, Versicherungen etc. entsteht, hervorgehoben. Es wird die Notwendigkeit betont, sich mit den firmeninternen und öffentlichen Datenmengen zu beschäftigen, um dem eigenen Unternehmen einen Wettbewerbsvorteil zu verschaffen. Durch die Auswertung großer Datenmengen sollen neue, geschäftskritische Informationen gewonnen werden, welche die Grundlage für Unternehmensentscheidungen sein können. Daten gelten als das Öl des 21. Jahrhunderts.
Die sogenannte „Value Proposition“ für Unternehmen ist somit klar: Mit Big Data können Firmen Kosten sparen, schnellere Entscheidungen treffen und neue Märkte generieren. Zahlreiche Berater nutzen Domänensprache, also eine spezialisierte Businesssprache, und erstellen für ihre Kunden neue Churn-Modelle 1, Customer Experience Solutions 2 und Data Monetarisation Use Cases 3.
Die Frage nach dem Wie bleibt in vielen Büchern unbeantwortet. Wie funktionieren die Lösungen im Detail, um Informationen aus Daten zu extrahieren? Wie integrieren sich Hadoop und Co. in bisherige Business-Intelligence-Architekturen und wie ist das Zusammenspiel mit dem Data Warehouse? Welche Bedeutung haben Frameworks wie Spark und Kafka in einer modernen Big-Data-Architektur? Und wie schaffen es Data Scientists, große Datenmengen aufzubereiten, zu visualisieren und den Fachabteilungen zugänglich zu machen? Mit welchen Tools wird eine Big-Data-Architektur geschaffen, um für neue, bisher unbekannte Herausforderungen optimal aufgestellt zu sein?
Dieser Fragenkatalog ließe sich beliebig fortführen und erweitern, denn die technischen Aspekte des Big-Data-Trends werden nur selten in ausreichendem Detailgrad diskutiert. Und wenn, dann nicht in Form von Gesamtlösungen, sondern in kleinen, gut verdaulichen Häppchen. Gründe dafür gibt es viele. Zum einen sind Big Data-Experten rar, und nur wenige haben die Zeit, ihr Wissen in Büchern oder Fachartikeln weiterzugeben. Darüber hinaus steht hinter Big Data nicht nur eine einzelne neue Technologie. Big-Data-Architekturen basieren oft auf vielen verschiedenen Komponenten, die erst im Zusammenspiel ihr ganzes Potenzial entfalten.
Das Thema ist unter technischen Gesichtspunkten umfangreich und bietet zahlreiche Bereiche, in denen es sich neues Wissen anzueignen gilt. Wichtig ist daher, dass Sie eine hohe Affinität zum Forschen und zum Experimentieren mitbringen. Viele Big-Data-Technologien werden laufend weiterentwickelt und andere verschwinden wieder. Dazu kommen die unterschiedlichsten Anforderungen von Unternehmen an Big Data, die wiederum unterschiedlich aufgebaute Big-Data-Architekturen erfordern.
Was den Leser in diesem Buch erwartet
Big Data wird in diesem Buch aus einer Engineering-Sicht betrachtet. Einzelne fachliche Anwendungsgebiete werden natürlich berücksichtigt, aber das Primärziel ist, Lesern, die an der Technologie interessiert sind, einen praktischen Einstieg in moderne Lösungsansätze zu bieten, die für die Verarbeitung von Daten z. B. aus sozialen Netzwerken, unstrukturierten Webseiten, umfangreichen Fließtextdokumenten und geografischen Daten nötig sind. Dabei wird nicht nur gezeigt, wie große Datenmengen in einem Cluster verarbeitet, sondern auch über ein Data Warehouse bereitgestellt oder mit neuen, innovativen Diagrammen visualisiert werden können. Themen wie NoSQL werden besprochen und im praktischen Teil HBase als Vertreter dieser Kategorie aktiv eingesetzt. Apache Hive wird als Data-Warehouse-Software vorgestellt, um zu zeigen, inwiefern auf Big Data mit Abfragesprachen ähnlich SQL zugegriffen werden kann. Darüber hinaus wird Hive dann auch neueren SQL-Trends wie dem Framework Apache Spark gegenübergestellt. Sie lernen, welche neuen Diagrammarten dabei unterstützen, große Datenmengen mit komplexen Beziehungen untereinander zu visualisieren und zu verstehen. Diese versprochenen Erläuterungen werden nicht nur in Textform gegeben, Sie werden auch aktiv in den Entwicklungsprozess miteinbezogen und wo möglich, werden die theoretischen Hintergründe nähergebracht. Neben den bekannten Apache-Projekten wie Hadoop, Hive und HBase werden auch einige weniger bekannte Frameworks wie Apache UIMA oder Apache OpenNLP besprochen, um gezielt die Verarbeitung unstrukturierter Daten zu behandeln. Dazu wird in dem Buch gezeigt, wie Sie kleinere Projekte entwickeln, um die Kniffe bezüglich der Nutzung der neuen Software kennenzulernen und zu verstehen. Das Ziel ist es, Sie auf den Effekt und den Mehrwert der neuen Möglichkeiten aufmerksam zu machen, sodass Sie diese konstruktiv in Ihr Unternehmen tragen und für sich und Ihre Kollegen ein Bewusstsein für den Wert Ihrer Daten schaffen.
Voraussetzungen
Wie im Vorwort erwähnt, ist die wichtigste Voraussetzung sicherlich die Experimentierfreude und die Bereitschaft, Neues zu erlernen und alte Gewohnheiten und Denkweisen zu hinterfragen. Die technischen Vorkenntnisse, die Sie mitbringen sollten, um dieses Buch flüssig lesen und nachvollziehen zu können, lassen sich in die drei Bereiche Entwicklungsumgebungen, Entwicklung und Betrieb unterteilen. Sie sollten sich mit Java und IntelliJ oder Eclipse als Entwicklungsumgebung auskennen. Da Hadoop, HBase, Hive, Sqoop etc. auf Ubuntu, in virtuellen Umgebungen und Dockercontainern installiert wird, ist es ebenfalls hilfreich, sich in einer Unix-Umgebung bewegen zu können und die grundlegenden Befehle zu kennen, um etwa Verzeichnisse zu wechseln, anzulegen oder zu löschen. Zudem ist eine etwas stärkere Systemumgebung vonnöten, um alle Szenarien aus dem Buch zu Hause nachvollziehen zu können. Wesentlich ist dabei RAM. 8 GB RAM sollten schon vorhanden sein. Die gute Nachricht ist, dass Sie für die verwendete Software kein Geld bezahlen müssen, denn alle in diesem Buch verwendeten Komponenten stehen in vollem Umfang kostenlos im Internet zur Verfügung.
Alle Beispiele in diesem Buch werden Schritt für Schritt aufgebaut und führen Sie somit hin zu einer fertigen und funktionstüchtigen Implementierung.
Die verwendeten Softwareversionen
In der ersten Auflage dieses Buches wurde Hadoop in der Version 2.2.0 verwendet, ergänzt um die weiteren Komponenten wie Hive und HBase in der jeweils zum damaligen Zeitpunkt aktuellen Version. Diese Versionierung wurde in der 2. Auflage beibehalten.
Die vorgestellten Komponenten wie Hadoop, Hive, HBase werden natürlich regelmäßig um neue Features erweitert, bei der Kernarchitektur wird jedoch auf eine hohe Abwärtskompatibilität geachtet. Aus diesem Grund sind alle Beispiele aus dem Buch weiterhin lauffähig und die Software kann entsprechend der Anleitungen im Buch installiert werden. Wenn Sie mit einer neueren Version arbeiten möchten, muss lediglich die Versionsnummer angepasst werden. Steht also im Buch beispielsweise
sudo wget http://mirror.lwnetwork.org.uk/APACHE/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
dann können Sie z. B. hadoop-2.2.0 durch hadoop-3.1.0 ersetzen und für die Java-Installation die Version 8 verwenden, wobei Sie anstelle von sudo apt-get install openjdk-7-jdk den Befehl sudo apt-get install openjdk-8-jdk ausführen.
Bild 1.1
Sie können also problemlos mit den aktuellen Versionen arbeiten, indem Sie beim Ausführen der Praxisbeispiele die Versionsnummern ersetzen. Darüber hinaus können Sie die Beispiele natürlich auch auf Basis der in diesem Buch verwendeten Versionen nachvollziehen.
Für wen ist dieses Buch geschrieben?
Dieses Buch ist für Menschen konzipiert, die sich in ihrem Beruf praktisch mit dem Thema Big Data auseinandersetzen. Dieses Buch soll aber nicht nur Informatiker ansprechen, sondern auch solche, die aus anderen Disziplinen kommen und vielleicht eine tolle Idee (und jede Menge Daten) haben und damit planen, z. B. ein Start-up zu gründen. Ebenso sollen Studenten und Auszubildende mit dieser Lektüre begleitet werden, die das Buch als Ergänzung zu einer Vorlesung oder zum Schreiben einer Seminararbeit verwenden können. Wenn Sie sich also zu einer Gruppe der in Bild 1.2 genannten Tätigkeitsfelder zählen oder mit einem der genannten Themen beschäftigen, dann lohnt sich ein Blick ins Buch besonders.
Bild 1.2
Menschen, die Big Data von einer Business-Ebene betrachten, können durchaus das eine oder andere aus dem Buch lernen, wenngleich der Fokus des Buches mehr auf Technologie als auf den Möglichkeiten einer „Data Monetisation“ liegt. Wer jedoch die Technologie versteht, wird auch besser verstehen, wie man daraus Geschäftsfelder erschließen kann.
Ein großes Thema bei Big Data sind auch gesellschaftliche Auswirkungen der Digitalisierung (bei der Big Data eine wesentliche Rolle spielt) und das Thema Datenschutz. In einer Zeit, in der Unternehmen bei Datenmissbrauch horrende Strafen drohen, kann dieser Aspekt nicht ignoriert werden. Allerdings wird sich dieses Buch mehr auf die technischen als auf die juristischen oder ethischen Herausforderungen konzentrieren.
Warum „Big Data in der Praxis“?
Jonas Freiknecht, der Autor der ersten Auflage, sieht sich als Learning-by-Doing-Typ, dem es liegt, sich Wissen anhand von praktischen Erfahrungen anzueignen. Wenn er Befehle auf der Tastatur eingibt, kann er sich diese einfach besser merken. Häufig entsteht auch dann ein tiefergehendes Interesse an der Materie, mit der er sich gerade beschäftigt, sodass er dann bereit ist, die Theorie nachzuholen.
Stefan Papp, der Autor, der die erste Auflage des Buches aktualisiert und erweitert hat, sieht das genauso: Technische Details lassen sich oft durch die praktische Anwendung am besten verstehen. Dadurch erhoffen sich beide Autoren den Effekt, dass Sie die Verbindung zwischen Hintergrundwissen und der tatsächlichen Anwendung schnell herstellen und verinnerlichen und es Ihnen beim Lesen nicht langweilig wird.
Vorgehensweise und Struktur
Dieses Buch beginnt mit einer theoretischen Einführung in alle Themen rund um Big Data. Neben der historischen Entwicklung des Begriffs und der Diskussion einiger unterschiedlicher Definitionen wird mithilfe von Studien und Umfragen gezeigt, welche Industrien welche Themen mit dem Begriff Big Data verbinden. Somit wird die Erwartungshaltung verschiedener Menschen in Bezug auf den Trend dargelegt. Eine Gegenüberstellung der Begrifflichkeiten BI, Data Mining und Big Data soll dabei helfen, Zusammenhänge, Unterschiede und gegenseitige Ergänzung der drei Begrifflichkeiten zu erkennen und Sie befähigen, diese gegeneinander abzugrenzen und an anderer Stelle Schnittpunkte zwischen ihnen zu finden.
Im Anschluss folgt ein Kapitel über Hadoop, in dem die Installation, Konfiguration und Bedienung erklärt wird. Dabei wird jeweils auf die Besonderheiten bei der Verwendung mit einem Single- oder Multi-Node-Cluster eingegangen. Es schließt sich die Entwicklung von Map-Reduce-Jobs und YARN-Anwendungen an, gefolgt von einem ausführlichen Abschnitt zur Arbeit mit der Hadoop-API, um den Zugriff auf das HDFS, den Resource Manager etc. zu erklären.
Nachdem die Funktionsweise und die Idee hinter Hadoop bekannt sind, wird in Kapitel 4 kurz vorgestellt, welche Projekte um Hadoop herum in dessen Eco-System existieren und welche Aufgaben diese haben. In Kapitel 5 wird das Thema NoSQL aufgegriffen, theoretisch erläutert und praktisch unter Zuhilfenahme von HBase umgesetzt. Dabei wird nicht nur gezeigt, wie HBase installiert und eingerichtet wird, sondern auch, wie auf dessen Daten, entweder über das Terminal oder die Java-API, zugegriffen werden kann.
Analog dazu wird in Kapitel 6 das Thema Data Warehousing mit Apache Hive besprochen und gezeigt, wie sich Hive in das Big-Data-Umfeld integrieren lässt. Elementarer Bestandteil dieses Kapitels ist die Abfragesprache HiveQL mit all ihren Ausprägungen und die Verwendung von Hive über einen herkömmlichen JDBC-Adapter, um aus einer Java-Anwendung Abfragen absetzen und auswerten zu können.
Das Thema Datenvisualisierung wird in Kapitel 7 behandelt, in dem zuerst einige Visualisierungsframeworks vorgestellt und verglichen werden. Danach wird mit D3.js ein Set von Visualisierungskomponenten erarbeitet, mit denen in einer Beispielanwendung ein paar ansehnliche Diagramme gezeichnet werden. Im theoretischen Teil dieses Kapitels geht es darum, was man beachten muss, wenn jemand plant, große Datenmengen auf kleinem Raum unterzubringen, und welche Trends und Möglichkeiten es dabei gibt.
In Kapitel 8 soll das Thema Informationsgewinnung nähergebracht werden, das zum einen einen Zusammenschnitt aller bisher kennengelernten Techniken in einer schicken Gesamtlösung vereint und des Weiteren auf die Besonderheiten bei der Verarbeitung von unstrukturierten Daten mit aktuellen Text-Mining-Frameworks eingeht, darunter Apache UIMA und Apache OpenNLP. Diese werden ebenfalls als Bestandteil in das hier zu entwickelnde Programm einfließen.
Erweitert wurde die zweite Auflage des Buches um sechs neue Kapitel zu Hadoop-unabhängigen Frameworks. In Kapitel 9 wird das Konzept Infrastructure as Code vorgestellt und gezeigt, wie man mit Docker-Containern arbeitet. Kapitel 10 widmet sich den funktionalen Programmierparadigmen und stellt verschiedene Programmiersprachen vor, die häufig in Big-Data-Szenarien Anwendung finden. Kapitel 11 beschreibt das Konzept von Polyglot Persistence, dem Weg, Daten in mehrere unterschiedliche Datenbanken und Container zwischenzulagern. In Kapitel 12 wird Apache Kafka als Messaging-System vorgestellt, bevor es in Kapitel 13 um die Data Processing Machine Apache Spark geht und in Kapitel 14 Daten-Streaming mit Apache Flink vorgestellt wird. Kapitel 15 beschäftigt sich mit dem Thema Data Governance und der effektiven Verwaltung von Daten.
Das Buch schließt ab mit einem Ausblick und zwei weiteren Kapiteln, die Ihnen Lösungen zu häufigen Fehlern bei der Arbeit mit Hadoop, Hive und HBase und ergänzende Anleitungen bieten.
Die Beispieldaten zum Buch
Die Beispieldaten zum Buch können unter https://github.com/StefanPapp/bigdata_buch heruntergeladen werden und enthalten u.a. die fertigen Projekte, die im Buch erarbeitet werden. Nutzen Sie diese gerne als Nachschlagewerk, um Vorgehensweisen und Verwendung der entsprechenden APIs im Detail zu verstehen. Last, but not least sind online diverse Testdatensätze zu finden, die gerne während der Entwicklung und Erprobung der Anwendungen genutzt werden dürfen. Für die Daten in der Wissensdatenbank liegen im Ordner Lizenzdateien die Quellen der Daten vor. Die generierten Beispieldatensätze sind zufällig gewählt bzw. generiert, sodass Übereinstimmungen von Namen, Adressen, Berufen oder anderen Eigenschaften mit denen von realen Personen nur zufällig sind.
Wenn Sie Fragen oder Anregungen bezüglich dieses Buchs haben, würden sich beide Autoren freuen, wenn Sie sie kontaktieren. Jonas Freiknecht ist über www.jofre.de kontaktierbar. Stefan Papp erreichen Sie am besten über LinkedIn oder Xing Beide Autoren wünschen viel Spaß bei der vorliegenden Lektüre.
1Modelle, in denen untersucht wird, warum Kunden kündigen und wie man das verhindern kann.
2Lösungen, mit denen man untersucht, wie sich Kunden verhalten, um ihr Verhalten abzuschätzen und zu lernen, wie man Geschäftsprozesse optimieren kann, um Kundenanliegen besser zu erfüllen.
3Data Monetisation ist die Disziplin, wie Firmen Geld aus Daten machen können. Beispielsweise können Telekommunikationsunternehmen gesammelte Geolokationsdaten auch an Dritte verkaufen
2 | Big Data |