hadoop in a nutshell hdfs, mapreduce & · pdf fileoracle owb expertise ... oracle db als...

41
Hadoop in a Nutshell HDFS, MapReduce & Ecosystem Oracle DWH Konferenz 2014 Carsten Herbe

Upload: ngotram

Post on 06-Feb-2018

226 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

Hadoop in a Nutshell

HDFS, MapReduce & Ecosystem

Oracle DWH Konferenz 2014

Carsten Herbe

Page 2: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

© ©

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 8 Jahre DWH-Erfahrung

Oracle OWB Expertise

Certified Hadoop Developer

mail [email protected]

phone +49 89 360531 5039

Ihr Ansprechpartner

Carsten

Herbe

Seite 2 Hadoop in a Nutshell 28.02.2014

Page 3: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Inhalt

Seite 3

Was ist Hadoop? 1

Hadoop Distributed File System (HDFS) 2

MapReduce 3

Hadoop in a Nutshell

Hadoop Ökosystem 4

28.02.2014

Architektur & Projekte 5

Fazit 6

Page 4: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Apache Hadoop 1

Page 5: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

© 28.02.2014 Hadoop in a Nutshell Seite 5

Page 6: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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 Hadoop in a Nutshell 28.02.2014

Page 7: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

© 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

Hadoop in a Nutshell 28.02.2014

1

2

1

2

3

Was ist Hadoop?

Page 8: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Distributionen enthalten das Hadoop Core und die wichtigsten Komponenten des Hadoop

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

Hadoop in a Nutshell Seite 8

Hadoop Distributoren

28.02.2014

Elastic MapReduce

Page 9: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

Hadoop in a Nutshell Seite 9 28.02.2014

Quelle: http://blog.cloudera.com

Page 10: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

Linear erweiterbar

Hadoop

Verarbeitung strukturierter Daten

Schema on Write

Write Read Update Many Times

Hohe Datenintegrität

Nicht linear erweiterbar

Oracle

Hadoop in a Nutshell Seite 10 28.02.2014

Page 11: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

HDFS 2

Page 12: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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)

Hadoop in a Nutshell Seite 12 28.02.2014

Page 13: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Cluster

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

Blöcke und verhindert Datenverlust durch Replikation.

Hadoop in a Nutshell 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

28.02.2014

Page 14: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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.

Hadoop in a Nutshell Seite 14 28.02.2014

Page 15: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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.

Hadoop in a Nutshell Seite 15 28.02.2014

Page 16: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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)

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

Hadoop in a Nutshell Seite 16 28.02.2014

Page 17: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

Hadoop in a Nutshell Seite 17 28.02.2014

Page 18: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

MapReduce 3

Page 19: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

28.02.2014 Hadoop in a Nutshell 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

Page 20: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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, Value):

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

Hadoop in a Nutshell Seite 20 28.02.2014

Page 21: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Hadoop Ökosystem 4

Page 22: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Für viele (spezielle) Anwendungsfälle gibt es entsprechende Tools. Hier ein Auszug …

28.02.2014 Hadoop in a Nutshell Seite 22

• RDBMS-like Metadaten

• SQL-Abfragen

• Generiert MR-Job(-Ketten): Batch

• Anbindung BI-Tools

SQL für Hadoop - HiveQL

• Ad-hoc SQL Analysen (kein MapReduce)

• Eigener Dienst auf jedem DataNode

• Beschränkung durch verfügbaren RAM

Impala: Interaktive Datenanalyse

• 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

• Netzwerkanalyse

• Graphentheorie

• Generiert MapReduce Jobs

Graphenverarbeitung

• Schneller Random R/W Zugriff

• Hält riesige Tabellen verteilt

in.memory

• Warenkörbe, Benutzerprofile, …

NoSQL Datenbank

Page 23: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

ständig durch neue Projekte erweitert.

HttpFS

Ambari HCatalog

Cascalog

Cloudera Manager

FuseDFS

Parquet

SequenceFiles Big Data Connectors

28.02.2014 Hadoop in a Nutshell Seite 23

Page 24: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Projekte & Architektur 5

Page 25: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

28.02.2014 Hadoop in a Nutshell Seite 25

Page 26: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

28.02.2014 Hadoop in a Nutshell Seite 26

Quelle: IBM Corporation

Page 27: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

D

B a

rea

Beispiel Big Data Architektur

28.02.2014 Hadoop in a Nutshell Seite 27

Page 28: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Fazit 6

Page 29: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

erfolgreich neue Business Cases umsetzen und in das Unternehmen integrieren.

28.02.2014 Hadoop in a Nutshell Seite 29

Page 30: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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?

?

28.02.2014 Hadoop in a Nutshell Seite 30

Page 31: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

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)

28.02.2014 Hadoop in a Nutshell Seite 31

Page 32: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Einblicke in das Hadoop API, Deep Dive in den MapReduce-Code und Diskussion mit

unseren Experten …

Lust auf mehr Details?

28.02.2014 Hadoop in a Nutshell Seite 32

Live MapReduce Demo hier auf der Konferenz!

Page 33: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Hadoop in a Nutshell – HDFS, MapReduce & Ökosystem

Fragen? Jetzt …

Carsten Herbe

Head of Data Warehousing

mail [email protected]

phone +49 89 360531 5039

… oder später?

Hadoop in a Nutshell

Downloads unter

dwh.metafinanz.de

Page 34: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

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!

Page 35: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

MapReduce API A1

Page 36: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

muss.

Seite 36

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);

}

}

}

map()-Methode überschreiben

Parameter:

• Schlüssel (Byteoffset des Zeilenbeginns innerhalb der Datei)

• Wert (Text-Zeile)

• Context (z.B. für Output)

Hadoop Live Demo 28.02.2014

0, Hadoop besteht aus HDFS und MapReduce.

Page 37: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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);

}

}

}

In dem Mapper werden Input-Key und –Value verarbeitet. Hier kann beliebige Logik

implementiert werden.

Seite 37

Verarbeitungslogik:

• Textzeile aus der Übergabe extrahieren

• Übersetzung der Textzeile in Tokens

• Iterieren durch alle Wörter einer Textzeile und

Erstellung der Key-Value-Paare

Hadoop Live Demo 28.02.2014

Page 38: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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);

}

}

}

Als Ergebnis des Mappers werden Key-Value-Paare erzeugt.

Seite 38

Output schreiben: context.write(Schlüssel, Wert)

Es müssen die im Klassen-Template angegebenen

Hadoop-Datentypen verwendet werden.

Hadoop Live Demo 28.02.2014

hadoop,1

besteht,1

aus,1

hfds,1

und,1

mapreduce,1

Page 39: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

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

Seite 39

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));

}

}

reduce()-Methode überschreiben

Parameter:

• Schlüssel (einzelnes Wort)

• Iterable-Objekt mit Werten, die zum Schlüssel abgelegt sind

(Anzahl)

• Context (z.B. für Output)

Hadoop Live Demo 28.02.2014

aus,1

besteht,1

daten,1

ein,1,1

filesystem,1

framework,1

hadoop,1,1

hdfs,1,1,1

Page 40: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Im Reducer werden die zu jeweils einem Key gehörenden Values aggregiert.

Seite 40

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));

}

}

Hadoop Live Demo 28.02.2014

Verarbeitungslogik:

• Alle Werte zu einem Schlüssel addieren

Page 41: Hadoop in a Nutshell HDFS, MapReduce & · PDF fileOracle OWB Expertise ... Oracle DB als Data Warehouse und Hadoop als Big Data Store sind nicht isoliert zu sehen sondern ergänzen

©

Auch die Ergebnisse des Reducers ist wieder ein Key-Value-Paar. Pro Reducer wird eine

Ergebnis-Datei erzeugt.

Seite 41

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));

}

}

Hadoop Live Demo 28.02.2014

Output schreiben: context.write(Schlüssel, Wert)

Es müssen die im Klassen-Template angegebenen Hadoop-

Datentypen verwendet werden

aus,1

besteht,1

daten,1

ein,2

filesystem,1

framework,1

hadoop,2

hdfs,3