Big Data in der Praxis - Lösungen mit Hadoop, Spark, HBase und Hive. Daten speichern, aufbereiten, visualisieren. 2. erweiterte Auflage

Jonas Freiknecht, Stefan Papp

Big Data in der Praxis

Lösungen mit Hadoop, Spark, HBase und Hive. Daten speichern, aufbereiten, visualisieren. 2. erweiterte Auflage

2018

551 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  49,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446456013

 

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-2024 ciando GmbH