Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2...

52
Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem Big Data für Oracle Entwickler September 2014 Carsten Herbe

Transcript of Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2...

Page 1: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

Einführung in die Hadoop-Welt

HDFS, MapReduce & Ökosystem

Big Data für Oracle Entwickler – September 2014

Carsten Herbe

Page 2: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

© ©

Wir fokussieren mit unseren Services die Herausforderungen des Marktes und verbinden

Mensch und IT.

Business Intelligence

Customer Intelligence

• Customer based Analytics & Processes

• Churn Prediction and

Management

• Segmentation and

Clustering

Insurance

Reporting

• Standard & Adhoc

Reporting

• Dashboarding

• BI Office Integration

• Mobile BI & InMemory

• SAS Trainings for Business

Analysts

Insurance Analytics

• Predictive Models, Data Mining & Statistics

• Scorecarding

• Social Media Analytics

• Fraud & AML

BI & Risk Risk

• Solvency II (Standard

& internal Model)

• Regulatory Reporting

• Compliance

• Risk Management

Enterprise DWH

• Data Modeling & Integration & ETL

• Architecture: DWH & Data Marts

• Hadoop & Columnar DBs

• Data Quality &

Data Masking

Themenbereiche Über metafinanz

metafinanz gehört fast 25 Jahren zu den erfahrensten

Software- und Beratungshäusern mit Fokus auf die

Versicherungsbranche.

Mit einem Jahresumsatz von 270 Mio. EUR und 450

Mitarbeitern entwickeln wir für unsere Kunden

intelligente zukunftsorientierte Lösungen für

komplexe Herausforderungen

Head of Data Warehousing

Mehr als 10 Jahre DWH-Erfahrung

Oracle & OWB Expertise

Certified Hadoop Developer

mail [email protected]

phone +49 89 360531 5039

Ihr Ansprechpartner

Carsten

Herbe

Seite 2 Einführung in die Hadoop-Welt 22.09.2014

Page 3: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Inhalt

Seite 3

Was ist Hadoop? 1

Hadoop Distributed File System (HDFS) 2

MapReduce 3

Einführung in die Hadoop-Welt

Hadoop Ökosystem 4

22.09.2014

Architektur & Projekte 5

Fazit 6

Page 4: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Apache Hadoop 1

Page 5: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

© 22.09.2014 Seite 5

Page 6: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Die Apache Software hat sich mittlerweile als Quasi-Standard zur Speicherung und

Verarbeitung von Big Data etabliert.

Verwaltung riesiger Datenmengen von strukturierten und unstrukturierten Daten

Linear skarlierbarer Cluster (Speicher & Performance) von Standard-Servern

Performance - Der Code wird zu den Daten auf die entsprechenden Knoten verteilt

Ein großes Ökosystem an Tools rund um Hadoop entsteht (Graphen, SQL, …)

Open Source - Kommerzielle Distributionen erhältlich (Cloudera, Hortonworks, …).

Warum Hadoop?

Seite 6 22.09.2014 Einführung in die Hadoop-Welt

Page 7: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

© Seite 7

Apache Hadoop ist ein Framework für die verteilte Speicherung und Verarbeitung großer

Datenmengen basierend auf Konzepten von Google.

Skalierbare

Rechenkapazität

Hadoop MapReduce

Hadoop Distributed

FileSystem (HDFS)

Skalierbare

Speicherkapazität

22.09.2014

1

2

1

2

3

Was ist Hadoop?

Einführung in die Hadoop-Welt

Page 8: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Distributionen enthalten das Hadoop Core und die wichtigsten Komponenten des Hadoop

Ökosystems. Sie unterscheiden sich in zusätzlichen (teilw. kommerziellen) Komponenten.

Seite 8

Hadoop Distributoren

22.09.2014

Elastic MapReduce

Einführung in die Hadoop-Welt

Page 9: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Ein Hadoop Cluster besteht aus Commodity Servern. Use Case abhängig sind

Hauptspeicher, Festplattenspeicher und Netzwerk.

Hardware

DataNode

64-128 GB Hauptspeicher (ggfs. bis zu 512GB)

2 quad-/hex-/octo-core CPUs, 2-2.5GHz

8–14 1TB Festplatten, JBOD-Konfiguration

Bonded Gigabit Ethernet oder 10 Gigabit Ethernet

Seite 9 22.09.2014

Quelle: http://blog.cloudera.com

Einführung in die Hadoop-Welt

Page 10: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Auch wenn man strukturierte Daten in Hadoop speichern kann – Hadoop ist keine

relationale Datenbank.

Hadoop ist keine Datenbank

Verarbeitung un-, teil- oder strukturierter Daten

Schema on Read

Write Once Read Many

Geringe Datenintegrität

Beliebig linear erweiterbar

Hadoop

Verarbeitung strukturierter Daten

Schema on Write

Write Read Update Many Times

Hohe Datenintegrität

Eingeschränkt linear erweiterbar

Oracle

Seite 10 22.09.2014 Einführung in die Hadoop-Welt

Page 11: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

HDFS 2

Page 12: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Das HDFS ist ein verteiltes Dateisystem und bildet die Basis für die BigData-Verarbeitung

mit Hadoop.

Definition

HDFS = Hadoop Distributed File System

Zuständig für die redundante Speicherung großer Datenmengen

in einem Cluster unter Nutzung von Commodity-Hardware

(einfache, günstige Rechner)

Implementiert in Java auf Grundlage von Google‘s GFS.

Liegt über einem nativen Dateisystem (wie ext3, ext4 oder xfs)

Seite 12 22.09.2014 Einführung in die Hadoop-Welt

Page 13: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Cluster

Das Hadoop Distributed File System (HDFS) speichert große Dateien durch Aufteilung in

Blöcke und verhindert Datenverlust durch Replikation.

Seite 13

278

MB

128

MB

128

MB

22 MB

$ hadoop fs –put doc.txt

1 2

3 4 5

6 7 8

3;1;5

3;7;8

6;4;2

Client

x3

x3

x3

NameNode

22.09.2014 Einführung in die Hadoop-Welt

Page 14: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

HDFS ist für die redundante Speicherung von großen Dateien ausgelegt, die write-once-

read-many Daten enthalten.

Eigenschaften

Beste Performance bei der Speicherung von großen Dateien: Besser weniger

große Dateien als viele kleine Dateien!

Dateien in HDFS sind nicht änderbar (write once read many), d.h. es sind keine

wahlfreien Schreibzugriffe erlaubt.

Seit Hadoop 2.0 ist es möglich, Daten an Dateien anzuhängen (append).

HDFS ist optimiert für das sequenzielle Lesen großer Dateien.

Dateien werden in HDFS auf Blöcke aufgesplittet (Default-Blockgröße: 128 MB).

Jeder Block wird redundant im Cluster gespeichert (Default: 3 fache

Speicherung).

Unterschiedliche Blöcke der gleichen Datei werden auf unterschiedlichen

Knoten (und ggf. Racks) gespeichert.

Einführung in die Hadoop-Welt Seite 14 22.09.2014

Page 15: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Alle Metainformationen über die Daten werden im Speicher des NameNodes verwaltet.

NameNode

Der NameNode hält die Metadaten (Namespaces) für das HDFS:

Welche Datei besteht aus welchen Blöcken?

Auf welchem Knoten liegt welcher Block?

Der NameNode Daemon muss jederzeit laufen, da ohne diese Metadaten nicht

auf die Daten im Cluster zugegriffen werden kann.

Um schnelleren Zugriff auf diese Daten zu haben, werden alle Daten im

NameNode im RAM vorgehalten.

Seite 15 22.09.2014 Einführung in die Hadoop-Welt

Page 16: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Im Cluster gibt es zwei unterschiedliche Typen von Nodes: viele DataNodes zur

Datenspeicherung und -verarbeitung und wenige MasterNodes mit zentralen Diensten.

MasterNodes

Neben dem NameNode gibt es noch weitere Server-Dienste

Diese laufen auf sogenannten MasterNodes

Auf den MasterNodes werden keine HDFS Daten gespeichert

Für einige dieser Server-Dienste gibt es schon Hochverfügbarkeitslösungen

Beispiele:

NameNode (ist ein Dienst auf einem MasterNode)

ResourceManager (für die Verwaltung von Jobs)

HiveServer (für SQL-Abfragen, lernen wir noch genauer kennen)

Seite 16 22.09.2014 Einführung in die Hadoop-Welt

Page 17: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Auf den DataNodes werden die Daten in Form von Blöcken gespeichert.

DataNode

In einem typischen Hadoop-Cluster gibt es sehr viele DataNodes.

Auf den DataNodes werden die Daten in Form von Blöcken gespeichert – ein

Block wird bei Verwendung der Standardkonfiguration auf drei Knoten

redundant abgelegt.

Die DataNodes laufen typischerweise auf Commodity-Hardware.

Um ein Rebalancing zu ermöglichen (z.B. bei Ausfall eines DataNodes), sollte

die Gesamtgröße des HDFS 80% des insgesamt vorhandenen

Speicherplatzes nicht überschreiten

Seite 17 22.09.2014 Einführung in die Hadoop-Welt

Page 18: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

MapReduce 3

Page 19: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Client

Cluster

Der Code wird zu den Daten auf die entsprechende Knoten gebracht und dort lokal

ausgeführt (Map). Diese Zwischenergebnisse werden im Reducer zusammengefasst.

Grundidee MapReduce

22.09.2014 Seite 19

protected void map(...)

throws …{

String line = value.toString();

for (char character :

line.toCharArray()) {

...

Resource

Manager

1 2

3 4 5

6 7 8

Name

Node

Daten

278 MB

128

MB

128

MB

22 MB x3

x3

x3

Einführung in die Hadoop-Welt

Page 20: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Reducer

Reducer

Mapper

Mapper

Mapper

Hadoop

besteht aus

HDFS und

MapReduce.

HDFS ist ein

Filesystem.

MapReduce

ist ein

Framework.

Mit

MapReduce

lassen sich

Daten in

HDFS

verarbeiten.

Hadoop ist

OpenSource

.

0, Hadoop

besteht aus

HDFS und

MapReduce.

38, HDFS ist

ein Filesystem.

hdfs,1

ist,1

ein,1

filesystem,1

mapreduce,1

ist,1

ein,1

framework,1

mit,1

mapreduce,1

lassen,1

sich,1

daten,1

in,1

hdfs,1

verarbeiten,1

62, MapReduce

ist ein

Framework.

90, Mit

MapReduce

lassen sich

Daten in HDFS

verarbeiten.

142, Hadoop ist

Open Source.

hadoop,1

ist,1

open,1

source,1

hadoop,1

besteht,1

aus,1

hfds,1

und,1

mapreduce,1

aus,1

besteht,1

daten,1

ein,2

filesystem,1

framework,1

hadoop,2

hdfs,3

Map Input

(Key, Value):

Offset, Textzeile

Map Output

(Key, Value):

Wort, Häufigkeit

Pa

rtit

ion

P

art

itio

n

Pa

rtit

ion

in,1

ist,3

lassen,1

mapreduce,3

mit,1

open,1

sich,1

source,1

und,1

verarbeiten,1

aus,1

besteht,1

daten,1

ein,1,1

filesystem,1

framework,1

hadoop,1,1

hdfs,1,1,1

So

rt

in,1

ist,1,1,1

lassen,1

mapreduce,1,1,1

mit,1

open,1

sich,1

source,1

und,1

verarbeiten,1

So

rt

Reducer Input

(Key, Values):

Wort, Häufigkeit

Reducer Output

(Key, Value):

Wort, Häufigkeit

HDFS Block HDFS File

Hadoop

besteht aus

HDFS und

MapReduce.

HDFS ist ein

Filesystem.

MapReduce

ist ein

Framework.

Mit

MapReduce

lassen sich

Daten in

HDFS

verarbeiten.

Hadoop ist

Open

Source.

Ergebnis

Seite 20 22.09.2014 Einführung in die Hadoop-Welt

Page 21: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Die map()-Methode ist die einzige Methode der Mapper-Basisklasse, die implementiert

werden muss.

Seite 21

package de.metafinanz.hadoop.wordcount;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

import java.util.*;

public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{

private final static IntWritable one = new IntWritable(1);

private Text word = new Text();

@Override

protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

String line = value.toString();

StringTokenizer tokenizer = new StringTokenizer(line, " \t\n\r\f,.:;?![]')(");

while (tokenizer.hasMoreTokens()) {

word.set(tokenizer.nextToken());

context.write(word, one);

}

}

}

22.09.2014 Einführung in die Hadoop-Welt

Page 22: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Als einzige Methode der Basisklasse muss die Methode reduce() implementiert werden.

Seite 22

package de.metafinanz.hadoop.wordcount;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Reducer;

public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable>{

@Override

protected void reduce(Text key, Iterable<IntWritable> values

, Context context) throws IOException, InterruptedException {

int sum = 0;

for (IntWritable val : values) {

sum += val.get();

}

context.write(key, new IntWritable(sum));

}

}

22.09.2014 Einführung in die Hadoop-Welt

Page 23: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Hadoop Ökosystem 4

Page 24: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

„Classic“ Stack

22.09.2014 Seite 24

• RDBMS-like Metadaten

• SQL-Abfragen

• Generiert MR-Job(-Ketten): Batch

• Anbindung BI-Tools

SQL für Hadoop - HiveQL

• Datenaustausch Hadoop und SQL Datenbanken

RDBMS Datenaustausch

• Einfache High Level Skript Sprache

• Fokus auf „ETL“

• Erweiterbar durch eigene Funktionalitäten

PIG - Skripting

• Sammeln von Log Files

• Laden von log files nach Hadoop

Log File Verarbeitung

• Machine learning library

Data Mining

• Workflows mit MapReduce, Hive, Pig, Sqoop, …

Workflow Engine

Einführung in die Hadoop-Welt

Page 25: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

HIVE – Hadoop mit SQL

"Tabellen"-Metadaten für Files

SQL ähnliche Abfragesprache HiveQL

Generiert MapReduce Jobs

SELECT … FROM …

JOIN …

GROUP BY …

WHERE … ;

INSERT INTO … AS SELECT …

HiveQL (SQL)

Hive

Driver CLI

Thrift

Relationale DB:

Metadata-Store

Hadoop

Job tracker

/user/hive/warehouse

/…

22.09.2014 Seite 25 Einführung in die Hadoop-Welt

Page 26: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Metadaten können für bestehende Dateien definiert werden. Per INSERT werden neue

Daten hinzugefügt und per SELECT abgefragt. UPDATE und DELETE gibt es nicht.

Hive Beispiele

CREATE EXTERNAL TABLE mytab(

stations_id STRING,

stations_hoehe STRING,

geograph_breite FLOAT,

geograph_laenge FLOAT,

von FLOAT,

bis FLOAT,

stationsname STRING

)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\;'

LOCATION '/data/my_loc';

Seite 26 22.09.2014

INSERT INTO TABLE targetTable

SELECT ... FROM sourceTable;

SELECT

stations_id,

sum(sonnenscheindauer),

min(mess_datum),

max(mess_datum)

FROM weather_data

WHERE year(mess_datum) = 2007

GROUP BY stations_id

HAVING sum(sonnenscheindauer) > 100

;

Einführung in die Hadoop-Welt

Page 27: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Sqoop – Datenaustausch Hadoop und RDBMS

Datentransfertool

Datenaustausch zwischen

Hadoop und SQL-

Datenbanken

Paralleler Datentransfer

Unterstützt gängige

Datenbanksysteme

Hadoop

Relational DB

Map Job

Reads metadata Defines and submits job

Sqoop client 2

Sqoop client 1

22.09.2014 Seite 27 Einführung in die Hadoop-Welt

Page 28: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Pig – Programmierplattform

Highlevel-Programmierplattform

PigLatin für Beschreibung von Datenflüssen

Generiert MapReduce Jobs

22.09.2014 Seite 28

Pig Latin

Map-Reduce

Cluster

eingabe = load '/projects/Beispiel.txt' as(zeile);

woerter = foreach eingabe generate flatten

(TOKENIZE(zeile)) as

wort;

gruppe = group woerter by wort;

anzahl = foreach gruppe generate group,

COUNT(woerter.wort);

DUMP anzahl;

Blaukraut bleibt Blaukraut

und Brautkleid bleibt Brautkleid

(und,1)

(bleibt,2)

(Blaukraut,2)

(Brautkleid,2)

Einführung in die Hadoop-Welt

Page 29: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Flume – Log File Verarbeitung

Sammlung Log Daten / Events

Zusammenfügen von Daten aus

verschiedenen Quellen

Filtern und Anreichern von Events

Zusammengefasste Daten werden in HDFS

abgelegt

Agent

Source Sink

Channel

Web

Server

HDFS

22.09.2014 Seite 29 Einführung in die Hadoop-Welt

Page 30: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Mahout – Bibliothek für maschinelles Lernen

Warenkorbanalysen

Klassifizierung von Kunden

Kundenwechselwahrscheinlichkeit

u.v.m.

Data Mining in Hadoop

Collaborative Filtering

Clustering

Classification

Laptop

Mahout

Collaborative Filtering

Clustering

Classification

Hadoop

MapReduce HDFS Cluster

22.09.2014 Seite 30 Einführung in die Hadoop-Welt

Page 31: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Oozie

22.09.2014 Seite 31

<workflow-app name='charcount-workflow' xmlns="uri:oozie:workflow:0.1">

<start to='charcount'/>

<action name='charcount'>

<map-reduce>

[…]

</map-reduce>

<ok to='end'/>

<error to='kill'/>

</action>

<kill name='kill'>

<message>Something went wrong: ${wf:errorCode('charcount')}</message>

</kill>

<end name='end'/>

</workflow-app>

Start Ende

Ab-

bruch

MapReduce

CharCount

Start OK

Fehler

Einführung in die Hadoop-Welt

Page 32: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Pig und Hive sind keine vollständigen Programmiersprachen (Schleifen, Kontrollstrukturen

etc.). Zudem ist bei der Entwicklung von UDFs ein Kontextwechsel nach Java notwendig.

Beispiel Use Case & Programmiersprachen

UDF

UDF Load

Function

Einführung in die Hadoop-Welt 22.09.2014 Seite 32

Page 33: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Cascading verarbeitet Tuples, die durch Pipes fließen. Aus dem Cascading Code

werden dann MapReduce Jobs generiert.

Cascading

Source

Tap

Sink

Tap

Pipes

Einführung in die Hadoop-Welt 22.09.2014 Seite 33

Page 34: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Die einzelnen Taps und Pipes werden als Java Objekte erstellt und dann in einer

Flow Definition zusammengefügt.

Cascading Word Count

Tap docTap = new Hfs( new TextDelimited( true, "\t" ), docPath );

Tap wcTap = new Hfs( new TextDelimited( true, "\t" ), wcPath );

Fields token = new Fields( "token" );

Fields text = new Fields( "text" );

RegexSplitGenerator splitter = new RegexSplitGenerator( token, "[ \\[\\]\\(\\),.]" );

Pipe docPipe = new Each( "token", text, splitter, Fields.RESULTS );

Pipe wcPipe = new Pipe( "wc", docPipe );

wcPipe = new GroupBy( wcPipe, token );

wcPipe = new Every( wcPipe, Fields.ALL, new Count(), Fields.ALL );

FlowDef flowDef = FlowDef.flowDef().setName( "wc" )

.addSource( docPipe, docTap ).addTailSink( wcPipe, wcTap );

Flow wcFlow = flowConnector.connect( flowDef );

wcFlow.writeDOT( "dot/wc.dot" );

wcFlow.complete();

Einführung in die Hadoop-Welt 22.09.2014 Seite 34

Page 35: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Scalding ist eine Scala API auf Cascading ohne „Boilerplate“-Code.

Scalding

TextLine( args("input") )

.flatMap('line -> 'word)

{ line : String => line.split("""\s+""") }

.groupBy('word) { _.size }

.write( Tsv( args("output") ) )

Source

Sink

Pipes

Monitoring mit Driven

(Web-Oberfäche)

MATRIX API für

Machine Learning

Unterstützung für

Spark ist gepant

Einführung in die Hadoop-Welt 22.09.2014 Seite 35

Page 36: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Die klassischen Tools generieren MapReduce Jobs. Oft muss mehr als ein Job generiert

werden, was zu eigentlich unnötigen I/O führt.

MapReduce Job Ketten

Map Reduce Map Reduce ...

... oder oder oder oder

Einführung in die Hadoop-Welt 22.09.2014 Seite 36

Page 37: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Tools wie Impala und Spark generieren kein MapReduce. Sie verarbeiten die Daten auf

den Knoten in-memory. Dazu ist entsprechende Software auf allen Knoten zu installieren.

In-Memory Tools

Operation ...

... oder oder Impala

Operation Operation

Einführung in die Hadoop-Welt 22.09.2014 Seite 37

Page 38: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Impala ist eine Open Source Lösung von Cloudera für SQL-Echtzeitabfragen mit

UDFs in C oder Java. Impala nutzt eigene Komponenten für in-memory Verarbeitung.

Statestore Hive Metastore Client

SQL query

cluster

monitoring

table/

database

metadata

impalad

HBase

RegionServer

HDFS DataNode

Query Executor

Query Coordinator

Query Planner

HBase

RegionServer

HDFS DataNode

impalad

Query Executor

Query Coordinator

Query Planner

impalad

HBase

RegionServer

HDFS DataNode

Query Executor

Query Coordinator

Query Planner

Einführung in die Hadoop-Welt 22.09.2014 Seite 38

Impala

Page 39: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Spark setzt auf in-memory Verarbeitung und lehnt sich von der Syntax her an

Scala-Collections an. Einige Tools wechseln schon von MR auf Spark.

Spark Architektur oder oder

Spark

SQL

Spark

Streaming MLib GraphX

Spark Core

val file = spark.textFile("hdfs://...")

val result= file.flatMap(line => line.split(" "))

.map(word => (word, 1))

.reduceByKey(_ + _)

result.saveAsTextFile("hdfs://...")

Beispiel WordCount in Scala

Einführung in die Hadoop-Welt 22.09.2014 Seite 39

Page 40: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Das Hadoop-Ökosystem besteht aus einer Vielzahl von Tools und Frameworks und wird

ständig durch neue Projekte erweitert.

HttpFS

Cascalog

FuseDFS

SequenceFiles Big Data Connectors

Big SQL

22.09.2014 Seite 40

Crunch

Kafaka

Oryx

ORCFiles

Einführung in die Hadoop-Welt

Page 41: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Projekte & Architektur 5

Page 42: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Je nach Projekttyp ähneln Hadoop Projekte mehr oder weniger klassischen BI-Projekten.

Hadoop Projekttypen

Big Data

Exploration

Sammlung von Daten aus unterschiedlichsten Quellen

Verknüpfung verschiedenster Datentypen

Data Mining (→ Data Scientist)

DWH Extension Verdichtung von neuen Big Data Informationen

Weiterleitung der Ergebnisse an das DWH

RDBMS Offload Offload ETL-Prozesse

Offload Analysen

Online Archivierung von Daten

22.09.2014 Seite 42 Einführung in die Hadoop-Welt

Page 43: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen

sondern ergänzen sich. Aus der Verknüpfung beider Welten entstehen Mehrwerte.

Hadoop

APPs APPs Documents,

files, …

Unstructured

data

Machine

generated data

OLTP

Applications

Datamart

OLAP

DWH

APPs APPs Reporting

Analytics

Data mining

In memory BI

Analytics

In memory BI

Data mining

Lan

din

g a

rea

En

han

ce

d a

rea

Beispiel Big Data Architektur

22.09.2014 Seite 43 Einführung in die Hadoop-Welt

DB

are

a

Page 44: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Hadoop

Aus dem gesamten Master Dataset werden periodisch (eventually consistent) Batch Views

generiert und diese mit aktuellsten Daten aus dem Speed Layer ergänzt.

Lambda Architecture

22.09.2014 Seite 44

APPs APPs new data

Batch Layer

Master

Dataset

Serving Layer

Batch View

Batch View

Query

Speed Layer

queue /

stream

Realtime View

Realtime View

Kafaka

Einführung in die Hadoop-Welt

Page 45: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Unterschiedliche Ansätze und Vorgehensweisen von DWH/BI und Big Data.

22.09.2014 Seite 45

Quelle: IBM Corporation

Einführung in die Hadoop-Welt

Page 46: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Die aktuellen Stellenangebote geben ein gutes Bild über die hohen Anforderungen an die

Position eines Data Scientists ab.

Sie sind nicht alleine auf der Suche nach Talenten …

Wer sucht?

Hadoop, MapReduce, Hive, HBase

Couch

Perl, Bash, C#, Ruby, Python, Octave

Java, C++

XML, JSON

Matlab, R

Oracle, MS SQL, MySQL, Teradata,

NoSQL

Cognos, SAS, Microstrategy,

Business Objects, QlikView, Tableau

TextMining, DataMining

… mit überdurchschittlichem

Hochschulabschluss, … mit

ausgeprägtem analytischem Bezug

Mit welchen Skills? Und was bieten Sie?

?

22.09.2014 Seite 46 Einführung in die Hadoop-Welt

Page 47: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Für Hadoop braucht man Data-Management- und Java/Scala-Skill in einer Person!

Die richtigen Mitarbeiter

Neugierde

Wenig Doku

Viel Recherche

Neuland begehen

Programmierung

Objektorientierung/Functional

1

2

1

2

3

MapReduce

Parallelität

Unstrukturierte Daten

Ökosystem

SQL

Data Management

ETL/DWH

Classic BI

Einführung in die Hadoop-Welt 22.09.2014 Seite 47

Page 48: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Fazit 6

Page 49: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Aus neuen Datenquellen, mit neuen Technologien und mit neuen Projektansätzen

erfolgreich neue Business Cases umsetzen und in das Unternehmen integrieren.

22.09.2014 Seite 49 Einführung in die Hadoop-Welt

Page 50: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Wir bieten offene Trainings an sowie maßgeschneiderte Trainings für individuelle Kunden.

Unsere Referenten sind Experten aus der Praxis.

metafinanz training

Einführung Hadoop (1 Tag)

Einführung Oracle in-memory Datenbank TimesTen

Data Warehousing & Dimensionale Modellierung

Oracle SQL Tuning

OWB Skripting mit OMB*Plus

Oracle Warehousebuilder 11.2 New Features

Einführung in Oracle: Architektur, SQL und PL/SQL

Mehr Information unter http://www.metafinanz.de/news/schulungen

All trainings are also available in English on request.

Hadoop Intensiv-Entwickler Training (3 Tage)

22.09.2014 Seite 50 Einführung in die Hadoop-Welt

Page 51: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

©

Einführung in die Hadoop-Welt: HDFS, MapReduce & Ökosystem

Fragen? Jetzt …

Carsten Herbe

Head of Data Warehousing

mail [email protected]

phone +49 89 360531 5039

… oder später?

Downloads unter

dwh.metafinanz.de

Einführung in die Hadoop-Welt 22.09.2014 Seite 51

Page 52: Einführung in die Hadoop-Welt HDFS, MapReduce & Ökosystem · Inhalt Seite 3 1 Was ist Hadoop? 2 Hadoop Distributed File System (HDFS) 3 MapReduce Einführung in die Hadoop-Welt

DWH & Hadoop Expertise

http://dwh.metafinanz.de

Besuchen Sie uns auch auf:

metafinanz Informationssysteme GmbH

Leopoldstraße 146

D-80804 München

Phone: +49 89 360531 - 0

Fax: +49 89 350531 - 5015

Email: [email protected]

www.metafinanz.de

Vielen Dank für Ihre Aufmerksamkeit!