scieee Science in your language
[en] (orig)

Konzeption und Entwicklung eines effizienten Prozess Mining Ansatzes auf Basis von MapReduce

Abstract

Um Geschäftsprozesse optimieren zu können, müssen diese erst einmal erhoben und definiert werden. Process Mining ist ein Technik, mit deren Hilfe sich Prozessmodelle aus gespeicherten Logdaten vorhandener Informationssysteme erheben lassen. Unternehmen bieten sich oft große Datenmengen an bereits vorhandener Logdaten für solche Prozessanalysen an. Ziel dieser Arbeit ist es ein Framework für große Logdaten zu entwickeln, welches Process Mining effizient auf Basis des MapReduce Programmierparadigmas durchführen kann. Hierfür werden zuerst Grundkonzepte eingeführt, die Entwicklung eines Heuristic Mining Algorithmus auf Basis von MapReduce beschrieben und dieser prototypisch im sogenannten ProDoop Framework implementiert. Um die Leistungsfähigkeit des vorgestellten Ansatzes zu überprüfen, wird anschließend die Geschwindigkeit von ProDoop ermittelt. Das durchgeführte Experiment zeigt hierbei, dass der implementierte Heuristic Mining Algorithmus vor allem bei großen Datenmengen effizient angewendet werden kann. Abschließend werden weitere Möglichkeiten zur Effizienzsteigerung vorgestellt.

Read accessible full text

Konzeption und Entwicklung eines effizienten Prozess Mining Ansatzes auf Basis von MapReduce

Author: Frey, Corvin
Year: 2016
Source: http://dbis.eprints.uni-ulm.de/id/eprint/1369/1/document.pdf
Uni e si ä Ulm | 89069 Ulm | Ge many Fakul ä ü
Ingenieu wissenscha en,
In o ma ik und
Psychologie
Ins i u ü Da enbanken
und In o ma ionssys eme
Konzep ion und En wicklung eines
e izien en P ozess Mining Ansa zes
au Basis on MapReduce
Bachelo a bei an de Uni e si ä Ulm
Vo geleg on:
Co in F ey
co [email p o ec ed]
Gu ach e :
P o . D . Man ed Reiche
Be eue :
Klaus Kamme e
2015
Fassung 29. Mä z 2016
c
2015 Co in F ey
This wo k is licensed unde he C ea i e Commons. A ibu ion-NonComme cial-Sha eAlike 3.0
License. To iew a copy o his license, isi h p://c ea i ecommons.o g/licenses/by-nc-sa/3.0/de/
o send a le e o C ea i e Commons, 543 Howa d S ee , 5 h Floo , San F ancisco, Cali o nia,
94105, USA.
Sa z: PDF-L
A
TEX2ε
Ku z assung
Um Geschä sp ozesse op imie en zu können, müssen diese e s einmal e hoben und
de inie we den. P ocess Mining is ein Technik, mi de en Hil e sich P ozessmodelle
aus gespeiche en Logda en o handene In o ma ionssys eme e heben lassen. Un-
e nehmen bie en sich o g oße Da enmengen an be ei s o handene Logda en ü
solche P ozessanalysen an. Ziel diese A bei is es ein F amewo k ü g oße Logda en
zu en wickeln, welches P ocess Mining e izien au Basis des MapReduce P og ammie -
pa adigmas du ch üh en kann. Hie ü we den zue s G undkonzep e einge üh , die
En wicklung eines Heu is ic Mining Algo i hmus au Basis on MapReduce besch ieben
und diese p o o ypisch im sogenann en P oDoop F amewo k implemen ie .
Um die Leis ungs ähigkei des o ges ell en Ansa zes zu übe p ü en, wi d anschließend
die Geschwindigkei on P oDoop e mi el . Das du chge üh e Expe imen zeig hie bei,
dass de implemen ie e Heu is ic Mining Algo i hmus o allem bei g oßen Da enmengen
e izien angewende we den kann. Abschließend we den wei e e Möglichkei en zu
E izienzs eige ung o ges ell .
iii
Inhal s e zeichnis
1 Einlei ung 1
2 G undlagen 3
2.1 Business P ocess Managemen . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 P ocessMining................................. 9
2.2.1 Heu is icMine ............................. 11
2.2.2 Social Ne wo k Analysis . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 MapReduce................................... 18
3 Apache Hadoop 23
3.1 YARN ...................................... 25
3.2 Hadoop Dis ibu ed Filesys em (HDFS) . . . . . . . . . . . . . . . . . . . 27
3.3 MapReduceinHadoop ............................ 31
3.4 ApachePig ................................... 33
4 P o o ypische Implemen ie ung 45
4.1 P oblems ellung ................................ 45
4.2 So wa ea chi ek u ............................... 46
4.3 Heu is ic Mining mi Pig . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4 Umse zunginJa aEE ............................. 53
5 E aluie ung 67
5.1 F ages ellung.................................. 67
5.2 De ini ion de Me iken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Inhal s e zeichnis
5.3 Expe imen au bau ............................... 68
5.4 Expe imen du ch üh ung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.5 Da enanalyse des Expe imen s . . . . . . . . . . . . . . . . . . . . . . . . 72
5.6 Bewe ung des Expe imen s . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6 Diskussion 77
6.1 Job uning .................................... 78
6.2 Ve gleich zu Da enbank Managemen Sys emen (DBMS) . . . . . . . . . 81
7 Zusammen assung 83
A Anhang 89
i
1
Einlei ung
In de heu igen, globalisie en Wel sind Un e nehmen da um bes eb , in e na ional
e olg eich und konku enz ähig agie en zu können. Die jeweiligen Geschä sp ozesse
zu kennen und zu op imie en is eine Möglichkei . O mals sind Geschä sp ozesse nu
implizi de inie und nich o mal besch ieben (z.B. mi Hil e eine Geschä sp ozess-
Modellie ungssp ache, wie BPMN [
1
]). Be o Geschä sp ozesse angepass und op i-
mie we den können, müssen diese deshalb e s einmal e hoben und de inie we den.
Viele Un e nehmen besi zen be ei s In o ma ionssys eme, die einzelne Ak ionen in-
ne halb eines implizi de inie en Geschä sp ozesses dokumen ie en. Die dabei en -
s ehenden Logda en können als G undlage ü die E hebung on P ozessmodellen
dienen.
P ocess Mining
nenn sich eine Technik, mi de man aus solchen Logda en
P ozessmodelle übe den a sächlichen Ablau eines Geschä sp ozesses e s ellen kann
(siehe Abbildung 1.1 [
2
]). Des Wei e en lassen sich mi P ocess Mining z.B. soziale
Beziehungen zwischen einzelnen P ozessbe eilig en e mi eln [3].
1
1 Einlei ung
In o ma ionssys eme in Un e nehmen e zeugen und speiche n be ei s g oße Logda-
enmengen, die sich mi klassischen Da en e a bei ungsme hoden nich meh e izien
e a bei en und auswe en lassen [
4
]. Aus diesem G und we den Me hoden benö ig ,
mi denen man P ocess Mining o z g oße Logda enmengen e izien du ch üh en
kann.
MapReduce
is ein P og ammie modell, das speziell da ü en wickel wu de, g oße
Da enmengen e izien zu e a bei en. Die G undidee is hie bei, die Bea bei ung on
Da en au einem e eil en Sys em in meh e en pa allelen S ömen zu e a bei en.
Im Rahmen diese A bei wi d ein Algo i hmus o ges ell , mi dem sich P ocess Mining
au Basis on MapReduce e izien du ch üh en läss . Diese Algo i hmus wu de mi
Hil e des Apache Hadoop F amewo ks im “P oDoop”-P o o ypen implemen ie und
anschließend e aluie .
Abbildung 1.1: G undlegende Funk ionsweise on P ocess Mining
Kapi el 2 üh g undlegende Techniken und Me hoden, wie Business P ocess Manage-
men , P ocess Mining und MapReduce ein. Kapi el 3 besch eib die Funk ionsweise on
Apache Hadoop [
5
]. Kapi el 4 dokumen ie die echnische Umse zung des P oDoop
P o o ypen. Kapi el 5 besch eib ein du chge üh es Expe imen , das die Rechenge-
schwindigkei de echnischen Implemen ie ung des P o o ypen un e such . In Kapi-
el 6 we den die E gebnisse des Expe imen s und die Bedeu ung on MapReduce in
Ve bindung mi P ocess Mining disku ie . Dabei wi d auch ein Ve gleich zu ande en
Fo schungsansä zen gezogen. Kapi el 7 ass diese A bei zusammen.
2
2
G undlagen
In diesem Kapi el we den g undlegende Konzep e o ges ell , welche ü die p ak ische
Umse zung on P ocess Mining und MapReduce benö ig we den. Im Folgenden wi d
das sogenann e Business P ocess Managemen (BPM) einge üh .
2.1 Business P ocess Managemen
Ein Geschä sp ozess (englisch:
business p ocess
) bes eh aus meh e en Ak i i ä en,
die koo dinie ausge üh we den. Ih e gemeinsame Aus üh ung soll dazu üh en, ein
o he de inie es Geschä sziel zu e eichen. Jede Geschä sp ozess kann hie bei
sowohl die In e ak ionen on P ozessbe eilig en inne halb eines Un e nehmens besch ei-
ben, abe auch zwischen meh e en Un e nehmen. Ein Geschä sp ozess de inie nich
3
2 G undlagen
CaseID Ac i i y Ressou ce Times amp
case 1 A John 9-3-2014 15:01
case 2 A John 9-3-2014 15:12
case 3 A Sue 9-3-2014 16:03
case 3 B Ca ol 9-3-2014 16:07
case 1 B Mike 9-3-2014 18:25
case 1 C John 10-3-2014 9:23
case 2 C Mike 10-3-2014 10:34
case 4 A Sue 10-3-2014 10:35
case 2 B John 10-3-2014 12:34
case 2 D Pe e 10-3-2014 12:51
case 5 A Sue 10-3-2014 13:05
case 4 C Ca ol 11-3-2014 10:12
case 1 D Pe e 11-3-2014 10:14
case 3 C Sue 11-3-2014 10:44
case 3 D Pe e 11-3-2014 11:03
case 4 B Sue 11-3-2014 11:18
case 5 E Cla e 11-3-2014 12:22
case 6 D John 11-3-2014 12:34
case 5 D Cla e 11-3-2014 14:34
case 6 A Sue 11-3-2014 15:05
case 4 D Pe e 11-3-2004 15:56
Tabelle 2.1: Beispiel ü ein E en Log (angelehn an [8])
10

2.2 P ocess Mining
Im Folgenden wi d ein P ocess Mining Algo i hmus o ges ell , mi dem In o ma ionen
übe den Ablau on P ozessen be echne we den können.
Mike
John
Pe e
Sue
Ca ol
Cla e
Abbildung 2.6: E mi el e soziale Abhängigkei en aus Tabelle 2.1 (angelehn an [8])
2.2.1 Heu is ic Mine
De P ocess Mining Algo i hmus namens Heu is ic Mine is in de Lage, Logda en zu
e a bei en. Dabei e laub e eine seh e izien e Bea bei ung, um quali a i hochwe ige
P ozessmodelle zu e mi eln [10].
P ocess Mining Algo i hmen haben iele He aus o de ungen zu meis e n. Eine da on
bes eh da in, alsch zugeo dne e E en Logs auszu il e n. Beispiel da ü is
Case 6
in
Tabelle 2.1. Die Da en aus
Case 6
wu den nich ich ig gespeiche und sollen dahe
nich im E gebnis e scheinen.
Da übe hinaus gib es Ins anzlogs, die zwa ko ek au gezeichne sind, abe Ein ä-
ge on Ak i i ä en en hal en, die seh sel en in de Aus üh ung eine P ozessins anz
o kommen [
11
]. Diese Ein äge we den als
"Noise"
bezeichne . Ein P ocess Mining
Algo i hmus soll e in de Lage sein diese he auszu il e n, da sons das e zeug e P o-
zessmodell schnell zu komplex we den kann. Noise kann auch dann in einem E en Log
au e en, wenn bei de Aus üh ung eine P ozessins anz Fehle au e en.
Eine wei e e He aus o de ung on P ocess Mining Algo i hmen bes eh da in, pa allele
Aus üh ungen in einem E en Log zu e kennen und als Ga eways im esul ie enden
P ozessmodell da zus ellen.
11
2 G undlagen
Im Rahmen diese A bei wi d da au e zich e , zwischen XOR-,AND- und OR-Ga eways
zu un e scheiden. Jedes au e ende Ga eway wi d als ein OR-Ga eway behandel . Dies
e meide den hohen Rechenau wand beim E kennen de e schiedenen Typen on Ga-
eways. Wie spä e zu sehen is , we den o zdem seh aussagek ä ige P ozessmodelle
e s ell .
Um die om
Heu is ic Mine
e zeug en P ozessmodelle da s ellen zu können, we den im
olgenden
C*-Ne ze
einge üh (angelehn an C-Ne ze aus [
8
]). Jedes C*-Ne z bes eh
aus meh e en Kno en und Kan en. Es exis ie je ein S a - und ein Endkno en. Diese
we den du ch K eise da ges ell . Alle ande en Kno en (Rech ecke mi abge unde en
Kan en) s ellen Ak i i ä en da . Ge ich e e Kan en zeigen Abhängigkei en zwischen den
Kno en. Falls Kno en meh e e Ausgangskan en haben, dann handel es sich um einen
OR-Spli . Abbildung 2.7 zeig das Beispiel eines C*-Ne zes. Kno en
A
s ell einen OR-
Spli -Kno en da : die au Kno en A olgenden P ade können in beliebige Kombina ion,
auch pa allel, ausge üh we den. En sp echend gil , dass ein Kno en mi meh e en
eingehende Kan en einen OR-Join-Kno en da s ell .
A
B
C
D
S a Ende
Abbildung 2.7: Beispiel eines C*-Ne zes zu Da s ellung eines P ozessmodells
Im Folgenden wi d da ges ell , wie de Heu is ic Mine unk ionie . Vo ausse zung
da ü sind o handene E en Logs. Bei diesen wi d die zei liche Ab olge on Ak i i ä en
geo dne nach P ozessins anzen be ach e . Als Beispiel dienen olgende T aces, die
ein ach aus einem E en Log e echne we den können:
L1= [ha, c, di5,ha, c, c, di2,ha, b, c, di10,ha, c, b, di10,ha, c, c, c, di1,ha, di5,ha, d, bi1]
De Exponen de einzelnen T aces gib an, wie o die angegebene Reihen olge im
gesam en E en Log o komm . Das E gebnismodell beginn mi einem S a kno en (S)
und ende mi einem Endkno en (E). De Heu is ic Mining Algo i hmus wandel
L1
in
olgende T aces um:
12
2.2 P ocess Mining
|a >Lb|S a a b c d Ende
S a 0 34 0 0 0 0
a 0 0 10 16 6 0
b 0 0 0 10 10 1
c 0 0 10 4 18 0
d0010033
Ende 0 0 0 0 0 0
Tabelle 2.2: |a >Lb|Tabelle des Heu is ic Mine s
L= [hS, a, c, d, Ei5,hS, a, c, c, d, Ei2,hS, a, b, c, d, Ei10,hS, a, c, b, d, Ei10,
hS, a, c, c, c, d, Ei1,hS, a, d, Ei5,hS, a, d, b, Ei1]
Da au hin wi d au L olgende Gleichung angewende (aus [8]):
|a >Lb|=X
σ∈L
L(σ)× |{1≤i < |σ||σ(i) = α∧σ(i+ 1) = b}| (2.1)
Die Gleichung be ach e jede Ak i i ä , die im E en Log o komm (im Beispiel: S a , a,
b, c, d, Ende) und be echne die Anzahl de Vo kommnisse de Ak i i ä en. Angewende
au das E en Log aus Tabelle 2.1 e häl man olgende E gebnisse, die in Tabelle 2.2
da ges ell sind.
Die einzelnen We e in Tabelle 2.2 sind wie olg zu in e p e ie en: Die Zahl 10 in de
d i en Zeile und de ie en Spal e bedeu e , dass in de Logda ei Ak i i ä
b
10 mal di ek
nach Aus üh ung de Ak i i ä
a
ausge üh wu de. Die Tabelle gib also die Häu igkei en
an, welche Ak i ä en-Aus üh ung on welche ande en Ak i ä en-Aus üh ung ge olg
wi d.
Um ein P ozessmodell zu be echnen, muss zusä zlich noch olgende Fo mel angewende
we den (aus [8]):
|a⇒Lb|=




|a>Lb|−|b>La|
|a>Lb|+|b>La|+1 i a6=b
|a>La|
|a>La|+1 i a =b
Diese Fo mel be echne ü jedes Paa , au das es angewende wi d, welches Abhängig-
kei smaß es besi z . Fü jedes Paa
(x, y)
on Ak i i ä en e geben sich We e zwischen
−1
und
+1
. De We ü
|x⇒Ly|
is nahe bei
+1
, wenn es eine s a k posi i e Abhän-
13
2 G undlagen
|a⇒Lb|S a a b c d Ende
S a 0
0+1 = 0 34−0
34+0+1
=0.97
0000
a0−34
0+34+1
=-0.97
010−0
10+0+1
=0.91
16−0
16+0+1
=0.94
6−0
6+0+1
=0.86
0
b 0 0−10
0+10+1
=-0.91
010−10
10+10+1
=0
10−1
10+1+1
=0.75
1−0
1+0+1
=0.5
c 0 0−16
0+16+1
=-0.94
10−10
10+10+1
=0
4
4+1 =0.8 18−0
18+0+1
=0.95
0
d 0 0−6
0+6+1
=0.86
1−10
1+10+1
=-0.75
0−18
0+18+1
=-0.95
033−0
33+0+1
=0.97
Ende 0 0 0−1
0+1+1
=-
0.50
00−33
0+33+1
=-0.97
0
Tabelle 2.3: |a⇒Lb|Tabelle des Heu is ic Mine s
gigkei zwischen
x
und
y
gib . Dann wi d
x
o on
y
ge olg ,
x
komm abe sel en di ek
nach
y
o . Man kann also da aus schließen, dass
x
die U sache da ü is , dass
y
e olg .
Ein We nahe an
−1
bedeu e eine s a k nega i e Abhängigkei :
y
olg sel en au
x
,
x
wi d jedoch o nach yausge üh .
Fü
|x⇒Lx|
wi d eine leich e ände e Fo mel e wende . Ein We nahe
+1
bedeu e
eine s a k e lexi e Abhängigkei . Dies is ein Hinweis da au , dass an diese S elle ein
Loop e olgen kann.
Tabelle 2.3 zeig die E gebnisse de Anwendung on Abbildung
|a⇒Lb|
au Tabelle 2.2.
Sie zeigen beispielsweise, dass eine s a k posi i e Abhängigkei zwischen
a
und
b
exis ie . Auße dem bes eh ü
c
eine s a k e lexi e Abhängigkei . Die Tabellen 2.2 und
2.3 bilden die Ausgangsbasis ü den Heu is ic Mine . Das esul ie ende Modell, ein
ge ich e e G aph, is in G a ik 2.8 zu sehen. Fü die Kons uk ion des E gebnismodells
geh man wie olg o : Die Kno en sind E eignisse und Ak i i ä en aus den E en Logs.
Die Kan en we den aus den Ein ägen de E gebnis abellen be echne . Fü jeden Ein ag
(x, y)
e häl man aus Tabelle 2.2 eine Zahl ü die absolu e Häu igkei und aus Tabelle
2.3 en nimm man eben alls ü
(x, y)
einen We ü das Abhängigkei smaß zwischen
−1
und
1
. Zu E s ellung de E gebnismodells muss ein sogenann e
Th eshold
angegeben
we den. Diese bes eh aus zwei We en, einem ü die Häu igkei und einem ü das
14
2.2 P ocess Mining
Abhängigkei smaß. Diese geben an, welche We e aus den Tabellen übe sch i en
we den müssen, sodass diese dann als Kan e in das esul ie ende E gebnismodell
au genommen we den. Das in e essan e am Th eshold bes eh da in, dass Anomalien
wie Noise ode alsche E en Logs aus dem E gebnis ausgeklamme we den können
(auße es we den zu kleine Th esholds e wende ). Auße dem bes eh das g undlegende
P oblem jedes E gebnismodells da in, eine gu e Balance zwischen Ein achhei (ein
möglichs übe sich liches Modell mi wenigen Kan en) und
"Fi ness"
(ein Modell, das
möglichs jedes in den E en Logs au gezeichne e Ve hal en be ücksich ig ) zu inden
[
11
]. Du ch Angabe eines Th esholds kann gewähl we den, wie ein ach ode komplex
das esul ie ende E gebnismodell sein soll.
Abbildung 2.8 zeig das be echne e E gebnismodell ü einen Th eshold on 4 ü die
Häu igkei sowie 0,6 ü das Abhängigkei smaß.
A
B
C
D
4
0.8
S a 34
1.0 Ende
33
0.97
Abbildung 2.8: E gebnisg a ik des Heu is ic Mine Beispiels mi Th eshold 4 und 0.6
In Abbildung 2.9 is das E gebnismodell mi Th eshold 6 ü die Häu igkei und 0,7 ü
das Abhängigkei smaß da ges ell . De Loop bei Ak i i ä C e schwinde hie bei, es
e gib sich somi ein noch übe sich liche es P ozessmodell. Soll also nu das S anda d-
Ve hal en abgebilde we den, so emp iehl es sich, höhe e We e ü den Th eshold zu
wählen. Fü ein de aillie es P ozessmodell wi d en sp echend ein kleine e Th eshold
benö ig .
15

2 G undlagen
A
B
C
D
S a 34
1.0 Ende
33
0.97
Abbildung 2.9: E gebnisg a ik des Heu is ic Mine Beispiels mi Th eshold 6 und 0.7
2.2.2 Social Ne wo k Analysis
Aus E en Logs können nich nu kausale Abhängigkei en zwischen Ak i i ä en be echne
we den, sonde n auch In o ma ionen übe o ganisa o ische S uk u en. In diesem Ab-
schni wi d eine
soziale Ne zwe kanalyse
o ges ell . Diese e echne aus einem E en
Log ein Soziog amm in Fo m eines G aphen, dessen Kno en Pe sonen ep äsen ie en
und dessen Kan en Abhängigkei en zwischen den einzelnen Pe sonen ep äsen ie en
[
9
]. Vo ausse zung de Anwendung eine sozialen Ne zwe kanalyse is , dass E en Logs
zu Ve ügung s ehen, in denen zu jede Ak i i ä die aus üh ende Ressou ce (also
die jeweilige Pe son) p o okollie wu de. Als Da s ellungs o m wi d wiede ein C*-Ne z
e wende , das einen S a - und einen Endkno en en häl .
Die Vo gehensweise is ähnlich wie beim Heu is ic Mine . Aus den E en Logs we den
T aces e s ell . In den T aces we den abe nich die Ak i i ä en angegeben, sonde n die
aus üh enden Pe sonen. Auße dem wi d zu jedem Ein ag noch ein S a - (S) und ein
Endkno en (E) einge üg .
Als Beispiel dien Folgendes: die Mi a bei e heißen Heinz (H), Pe e (P), Klaus (K) und
F anziska (F). De zug unde liegende E en Log sieh wie olg aus:
L= [hS, H, K, Ei10,hS, P, K, Ei10,hS, H, K, F, P, K, Ei5,hS, P, K, F, H, K, Ei6,
hS, P, K, F, K, Ei4,hS, K, H, F, P, K, Ei1]
Sei L de E en Log und
p1, p2∈P
, wobei P die Menge de Pe sonen is , dann wi d
olgende Fo mel ü die Be echnung de sogenann en
"Hando e o Wo k Ma ix"
ange-
16
2.2 P ocess Mining
|a >Lb|S a Heinz Pe e Klaus F anziska Ende
S a 0 15
36 = 0.42 20
36 = 0.56 1
36 = 0.03 0 0
Heinz 0 0 0 21
36 = 0.58 1
36 = 0.03 0
Pe e 0 0 0 25
36 = 0.69 0 0
Klaus 0 1
36 = 0.03 0 0 15
36 = 0.42 36
36 = 1.0
F anziska 0 6
36 = 0.17 6
36 = 0.17 4
36 = 0.11 0 0
Ende 0 0 0 0 0 0
Tabelle 2.4: Hando e o Wo k Ma ix
wende (angelehn an [3]):
p1.Lp2= X
c∈L
|p1.Lp2|!/|L|(2.2)
Das heiß , ü jede Pe son
p1
wi d be echne , we in welche Häu igkei di ek danach
seine Tä igkei au nimm . Man echne also aus, wie o Pe son
p1
de Pe son
p2
ih e A -
bei übe gib . Aus diesem G und heiß de Algo i hmus Hando e o Wo k. Das E gebnis
wi d du ch die Anzahl de P ozessins anzen ge eil , die im E en Log abgebilde we den.
Das E gebnis ü
L
is in Tabelle 2.4 zu sehen. Beispielsweise ha Heinz 21 mal seine
A bei an Klaus übe geben. 36 Ins anzen wu den in de Logda ei au gezeichne . Dahe
lau e de Ein ag 21
36 = 0.58.
F anziska
Heinz
Pe e
Klaus
S a Ende
Abbildung 2.10: Hando e o Wo k C*-Ne z
Aus diese Tabelle kann anschließend ein C*-Ne z e s ell we den. Jede Pe son bilde
einen Kno en, auße dem en häl de G aph einen S a - und Endkno en. Die Kan en
17
2 G undlagen
we den aus de Tabelle abgelei e . Jedes Paa
(x, y)
, das einen We in de Tabelle häl
(de g öße is als de o gegebene Th eshold) bilde eine Kan e.
Fü das Beispiel wi d ein Th eshold on 0.1 e wende . Das E gebnis is in Abbildung
2.10 da ges ell . Die Kan en zeigen an, welche Pe son welche ande en die A bei
übe gib . Zu beobach en is , dass seh kleine We e aus de Tabelle in de G a ik nich
da ges ell we den. De Th eshold könn e auch noch höhe gese z we den, um nu noch
die wich igs en Abhängigkei en anzuzeigen und ein noch übe sich liche es Modell zu
e hal en. Zusä zlich zu einem klassischen Soziog amm e häl man mi dem S a kno en
und dem Endkno en wei e e In o ma ionen: Man sieh , we zu Beginn eines Falls a bei e
(im Beispiel be i dies Heinz und Pe e ) und we den Fall beende (Klaus). Insgesam
e häl man mi dem e s ell en Soziog amm, das übe die Hando e o wo k Ma ix e s ell
wu de, einen Einblick in die A bei ss uk u zwischen Pe sonen. E en uell kann man
da aus eine O ganisa ionss uk u eines Un e nehmens ablei en, ode abe man sieh ,
we ge ne mi wem a bei e . Beides sind In o ma ionen, die zusammen mi dem om
Heu is ic Mine e s ell en P ozessmodell dabei hel en können, Geschä sp ozesse zu
e s ehen und zu analysie en.
2.3 MapReduce
In Kapi el 2.2 wu den Algo i hmen o ges ell , die es e möglichen, P ocess Mining au
E en Logs anzuwenden. Um diese e izien au g oßen Da enmengen anzuwenden,
we den wei e e Technologien benö ig , die nach olgend einge üh we den.
MapReduce
is ein P og ammie modell, das g oße Da ensä ze e izien pa allel e -
a bei en kann. Eine Implemen ie ung in MapReduce bie e seh gu e Leis ungen im
Ve gleich zu al e na i en Sys emen [
12
]. Auch im Ve gleich zu P og ammie ung in
eine maschinennahen P og ammie sp ache kann MapReduce Geschwindigkei s o eile
bie en [13].
MapReduce wu de 2004 on Google einge üh . Sei dem wu de es kon inuie lich wei e -
en wickel und on ielen ande en g oßen Un e nehmen e wende [
5
]. Die G undidee
on MapReduce is es, g oße Da ensä ze in kleine e Teilau gaben au zu ennen ("Spli "),
18
2.3 MapReduce
map
map
map
Spli 0
Spli 1
Spli 2
so
Inpu
Da a
educe pa 0
Copy
(shu le) me ge Ou pu Da a
Replica ion
educe pa 1 Replica ion
Abbildung 2.11: Schema ische Aus üh ung on MapReduce (angelehn an [14])
diese pa allel zu e a bei en ("Map") und dann wiede zusammenzu ügen ("Reduce").
Kennzeichen mode ne MapReduce F amewo ks, wie Apache Hadoop, is die ein ache
Handhabung: P og ammie e müssen lediglich eine Map-Funk ion und eine Reduce-
Funk ion be ei s ellen, um wei e e Aspek e wie Ve eilung de einzelnen Da enpake e au
e eil e Ha dwa e kümme sich in de Regel das en sp echende F amewo k anspa en
[15].
In de Regel we den die einzelnen Teilau gaben bei MapReduce au e eil en Sys emen
(
Clus e n
) e a bei e . Diese se z sich aus meh e en sogenann en
Nodes
zusammen.
Eine Node kann en wede ein physikalische ode i ualisie e Compu e sein.
De Ablau eines MapReduce Jobs wi d in Abbildung 2.11 da ges ell . Die zu e a bei en-
den Da ensä ze we den zunächs in Blöcke ge eil ("Spli "). Diese Blöcke haben in de
Regel eine G öße on e wa 128MB [
14
]. In einem Clus e be inden sich die Blöcke hie -
bei au ielen e schiedenen Kno en. Bei eine ealen Aus üh ung sind au jedem Kno en
iele Blöcke. Jede Kno en üh nach dem Au eil o gang meh e e Map-Fuk ionen aus,
wobei eine Map-Funk ion einen Teil de Ke nlogik de anzuwendenden Algo i hmen
da s ell . Map-Funk ionen we den übe einen komple en Clus e pa allel ausge üh .
Die E gebnisse de Map-Funk ionen we den danach übe ein Ne zwe k inne halb des
Clus e s au ande e Kno en kopie , au denen wiede um Reduce-Funk ionen ausge üh
we den. Dies is die sogenann e Shu le Phase, in de die E gebnisse de einzelnen
Map-Funk ionen wiede zusammenge üg und anschließend in ein Da eisys em gesch ie-
ben we den. Je nach Implemen ie ung eines MapReduce F amewo ks we den diese
19
3 Apache Hadoop
Einhei en on Ressou cen (z.B. 1 CPU-Ke n, 2GB RAM), die jeweils einem Kno en
zugeo dne sind. Ein NodeManage is ein P og amm, das die Ha dwa e essou cen
inne halb des Kno ens e wal e . Es kann Con aine s a en und beenden, ha Übe blick
übe die zu Ve ügung s ehenden Kapazi ä en und die au e enden Fehle .
Au eine Mas e Node läu ein Resou ceManage . De Resou ceManage e wal e
die Ha dwa e essou cen des Clus e s, da un e CPU-Kapazi ä und Speiche pla z. De
Resou ceManage implemen ie zwei Schni s ellen: zum Einen zu Clien s, die Applika-
ionen übe mi eln; zum Ande en zu Applica ionMas e s, die übe Ha dwa e essou cen
ü ih e Jobs e handeln. Einzelne Jobs, nach olgend
Applika ionen
genann , sollen so
e izien wie möglich ausgenu z we den.
Clien 1
Clien 2
Resou ce
Manage
Node
Manage
Node
Manage
Node
Manage
Con aine Con aine
Applica ion
Mas e Con aine
Con aine Applica ion
Mas e
Job
übe mi eln
MapReduce S a us
übe mi eln
Nach age nach
Ressou cen
Node S a us
übe mi eln
Abbildung 3.3:
YARN So wa e-A chi ek u mi Resou ceManage und NodeManage [
5
]
Wenn eine Applika ion on einem Clien beau ag wi d, wi d zue s abgewa e , bis de
Schedule des Resou ceManage s genügend eie Ha dwa e essou cen zu Ve ügung
ha . E s dann wi d die Applika ion ges a e . Als E s es wi d de Resou ceManage
den Au ag geben, einen Con aine zu s a en, in dem de Applica ionMas e a bei-
en soll. De Applica ionMas e is ü den komple en Job e an wo lich, dies um ass
z.B. den Umgang mi dynamisch ände nden An o de ungen an Ha dwa e essou cen
26

3.2 Hadoop Dis ibu ed Filesys em (HDFS)
sowie Fehle behandlungen. Um Con aine zu e hal en, s ell de Applica ionMas e eine
An age an den Resou ceManage . In diese is de inie , wie iele Con aine de App-
lica ionMas e benö ig , an welchem O sie sich physikalisch be inden sollen und wie
iele P ozesso ke ne und RAM p o Con aine benö ig we den. De Resou ceManage
en scheide nun nach e ügba e Kapazi ä und de inie e Scheduling-S a egie, ob
die ange o de en Ha dwa e essou cen zuge eil we den können [
23
]. Bei Zu eilung
wi d dem Applica ionMas e mi ge eil , dass bes imm e Ha dwa e essou cen zuge eil
we den. Diese Zu eilung wi d an die be e enden NodeManage wei e gelei e , welche
wiede um die Con aine ein ich en. Anschließend kann de Applica ionMas e einen
Task inne halb eines Con aine s s a en. Dies is im Fall eine MapReduce-Applika ion
en wede ein Map-Task ode ein Reduce-Task, da jede MapReduce-Applika ion aus meh-
e en Map-Tasks und Reduce-Tasks bes eh . De Con aine kommunizie di ek mi dem
Applica ionMas e , um den eigenen S a us mi zu eilen ode Be ehle en gegenzunehmen.
Wäh end de Aus üh ung eine Applika ion e häl de Clien di ek om Applica ion-
Mas e In o ma ionen übe S a us und Fo sch i des jeweiligen Jobs. Wenn die A bei
e ledig is und eine Applika ion abgeschlossen is , so eil dies de Applica ionMas e
dem Resou ceManage mi . Da au wi d de Con aine , in dem de Applica ionMas e
egis ie wa , au gelös und kann ü ande e Zwecke wiede e wende we den. De Re-
sou ceManage kann da au hin die ei gewo denen Ressou cen wei e en Applika ionen
zuweisen.
YARN bie e eine obus e S uk u ü die Ve wal ung und Übe wachung on Con aine n,
wobei die Implemen ie ung de einzelnen Applika ionen dem jeweiligen F amewo k
übe lassen wi d.
3.2 Hadoop Dis ibu ed Filesys em (HDFS)
Im le z en Kapi el wu de behandel , wie YARN die Aus üh ung on Jobs in einem
Hadoop-Clus e egel und die dami e bundene Ve eilung on P ozesso leis ung und
Haup speiche kapazi ä kon ollie . Im Folgenden wi d das e eil e Da eisys em HDFS
be ach e [5, 24].
27
3 Apache Hadoop
Eine An o de ung an die En wicklung on HDFS bes and da in, möglichs g oße Da-
enmengen e lässlich zu speiche n. HDFS is in de Lage, Da enmengen on bis zu
200 PB in einem einzigen Clus e mi meh e en ausend Kno en mi übe eine Millia de
Da eien zu e wal en. Um Ha dwa e ehle n o zubeugen, we den Da eien in Pake e
au ge eil und e eil im Clus e gespeiche . Au e ende Ha dwa e ehle können hie -
bei selbs s ändig e kann und behoben we den. HDFS is e izien implemen ie , die
Aus üh ung on Jobs inne halb eines HDFS-Clus e s benö ig nu einen seh ge ingen
Ve wal ungsau wand.
Wich ige Teil de HDFS A chi ek u sind
NameNodes
. Sie e wal en In o ma ionen übe
Posi ion und Zus and alle Da eien inne halb eines HDFS-Clus e s (Namespace) und
en scheiden, in welche physikalischen Nodes Da en gespeiche we den. Es exis ie
nu eine NameNode p o Clus e . Die NameNode be inde sich au eine Mas e Node.
Jede Sla eNode besi z eine sogenann e
Da aNode
: diese speiche Da en in Blöcken.
Auße dem exis ie eine
Checkpoin Node
, die de NameNode dabei hil , ih e Ve wal-
ungsda en ak uell zu hal en.
Abbildung 3.4: Beispiel ü ein HDFS Clus e (angelehn an [25])
Abbildung 3.4 zeig ein wei e es Beispiel ü ein Hadoop-Clus e . Das Clus e bes eh
aus N e schiedenen
Racks
, wobei jedes Rack aus 5 Nodes bes eh . G oße Clus e
28
3.2 Hadoop Dis ibu ed Filesys em (HDFS)
we den in de Regel mi d ei Mas e Nodes konzipie ( osa da ges ell ). Au diesen
sind die NameNode, de Resou ceManage und die Checkpoin Node ins an iie . Jede
Sla ekno en behe be g eine Da aNode (DN) und einen NodeManage (NM). Je nach
Kon igu a ion kann ein Mas e Node auch übe Da aNode und NodeManage e ügen,
dies wi d jedoch e mieden, um de NameNode die komple en Ha dwa e essou cen
eines Kno ens zu Ve ügung zu s ellen [5].
Eine NameNode e wal e den komple en Namespace des Clus e s [
24
]. Eine Da ei
wi d in Blöcke on 128 MB au ge eil und dabei d eimal eplizie (Blockg öße und
Replika ions ak o können kon igu ie we den). Aus diesem G und häl die NameNode
zu jede Da ei es , in welche Blöcke sie au ge eil is und wo sich die Blöcke (und ih e
Replika ionen) physikalisch im Clus e be inden.
Wenn ein Clien eine Da ei aus dem HDFS lesen möch e, so muss e e s Kon ak
mi de NameNode au nehmen. Diese eil ihm mi , wo sich die gesuch en Blöcke mi
allen Replika ionen be inden. De Clien wähl dann die Blöcke aus, die ü ihn übe
den Ne zwe kweg am Schnells en zu e eichen sind und lies die Da en di ek on
de jeweiligen Da aNode. Wenn ein Clien eine Da ei ins HDFS sch eiben möch e, so
muss e ü jeden Block, den e e zeugen möch e, bei de NameNode an agen. Diese
nominie d ei Da aNodes, die alle den gleichen Block speiche n sollen. De Clien
sch eib dann seine Da en in die e s e Da aNode. Da au hin gib diese die Da en an die
zwei e wei e . Diese wiede um nimm Kon ak mi de d i en Da aNode au . Wenn de
le z e Sch eib o gang beende is , bes ä igen die Da aNodes de NameNode, dass sie
den Block e olg eich gesch ieben haben (siehe Abbildung 3.5).
Die NameNode speiche die Me ada en des Da eisys ems in eine Da ei namens
simage
, welche im lokalen Da eisys em gespeiche wi d.
simage
wi d in ande-
en Quellen auch
checkpoin
genann . Alle Ände ungen am Da eisys em (Lösch- ode
Ein üge-Ope a ionen on Blöcken) we den nich in
simage
gespeiche , sonde n in
eine Da ei namens
jou nal
.
simage
wi d dabei on de NameNode nich geän-
de . Nu bei einem NameNode-Neus a lies die NamenNode
simage
e neu , üh
alle Ak ualisie ungen, die in
jou nal
es gehal en sind du ch und speiche
simage
.
Wenn eine NameNode eine Woche ohne Un e b echung ausge üh wu de, so kann das
29
3 Apache Hadoop
Abbildung 3.5: Ablau eines Sch eib o gangs eines Clien s ins HDFS [24]
Einspielen des
jou nals
bei Neus a bis zu eine S unde daue n. Aus diesem G und
wu den
Checkpoin Nodes
einge üh . Diese lesen in pe iodischen Abs änden
simage
und
jou nal
und mig ie en alle Ände ungen aus dem Jou nal in
simage
. Al e na i
zu eine Checkpoin Node kann auch eine zwei e NameNode ode eine BackupNode
e wende we den. Beide haben die gleiche Funk ionali ä wie eine Checkpoin Node.
Jede Da aNode p ü die Blöcke in ih em Clus e egelmäßig au In eg i ä und sende
egelmäßig sogenann e Hea bea s an die NameNode. Diese e kenn somi , welche
Da aNodes e ügba sind. Übe sogenann e Block epo s de Da aNodes wi d die
NameNode zusä zlich übe den Zus and de einzelnen Blöcke un e ich e . Die Name-
Node kann hie bei be echnen, ob de Replika ions ak o jedes Blocks mi dem Soll-We
übe eins imm . Falls Replika ionen ehlen, wähl die NameNode einen ode meh e e
Da aNodes aus, die Block eplika ionen e s ellen sollen. Falls zu einem Block zu iele
Kopien bes ehen, wi d die NameNode die übe zähligen löschen lassen. Die Da aNodes
übe wachen sich selbs , melden sich selbs s ändig bei de Da aNode, die imme ü
einen ko ek en Zus and de Da en so g [24].
30
3.3 MapReduce in Hadoop
3.3 MapReduce in Hadoop
In Kapi el 3.1 wu de e läu e , wie Hadoop Applika ionen übe ein Clus e e eil aus üh-
en kann. Im Folgenden geh es um den Inhal de Applika ionen, hie bei besch änken
wi uns au MapReduce Jobs. Die Umse zung on MapReduce in Hadoop olg dem
MapReduce F amewo k, das in Kapi el 2.3 behandel wu de. Die e o de lichen Map-
und Reduce- Funk ionen können in e schiedenen P og ammie sp achen gesch ieben
we den, wie Ja a, Py hon ode C++. Als Beispiel wi d das Wo dCoun Beispiel aus
Kapi el 2.3 be ach e , das in Ja a Code umgese z wu de [5](siehe Anhang).
Die Map Funk ion bekomm ein Key/Value Paa als A gumen übe geben und gib als
Ausgabe eine Lis e on Key/Value Paa en aus. Die A gumen e de Reduce-Funk ion
sind: einen Key und eine Lis e on Values. Die Ausgabe des Reduce s is ein Key und
ein Value. In de Main Funk ion e kenn man, dass ein Combine e wende wi d (Zeile
61).
In Kapi el 2.3 wu de e wähn , dass P og ammie e n mi dem MapReduce F amewo k
iel A bei abgenommen wi d. Diese müssen nu Map- und Reduce-Funk ionen p o-
g ammie en. Um alle ande en Dinge, wie die e eil e Speiche ung de Da en ode de
Umgang mi Fehle n, müssen sich Anwende keine Gedanken machen, dies wi d om
jeweiligen Sys em übe nommen. T o zdem we den ü ein simples Wo dCoun Beispiel
übe 60 Zeilen Code benö ig . Bei komplexe en Da enab agen, wie sie in diese A bei
du chge üh we den sollen, müss en iele Mappe und Reduce p og ammie we den.
Um diesem P oblem zu begegnen, wu den Tools en wickel , die Da enab agen ü den
Anwende iel ein ache machen [
26
]. Diese Tools heißen
Hi e
und
Pig
. Ziel diese Tools
is es, dass Anwende wenige Zei ü die P og ammie ung benö igen und meh Zei ü
die Analyse zu Ve ügung haben. P og amme, die in Hi e und Pig gesch ieben wu den,
we den bei ih e Aus üh ung in MapReduce-Funk ionen übe se z . Vo ausse zung ü
Hi e is , dass s uk u ie e Da en zu Ve ügung s ehen.
Bei Hi e wi d SQL-ähnliche P og amm-Code gesch ieben, diese dekla a i e Ab age-
sp ache nenn sich
Hi eQL
. Das Wo dcoun Beispiel sieh in Hi eQL olgende maßen
aus:
31

3 Apache Hadoop
1SELECT wo d able.wo d,coun *
2FROM wo d able
3GROUP BY wo d able.wo d;
Lis ing 3.1: Umse zung des Wo dcoun Beispiels in Hi e
Im Jah 2006 ha Yahoo! ein wei e es Tool en wickel , das de e ein ach en Aus üh ung
on MapReduce Ab agen dien [
26
]. Dieses nenn sich Pig und unk ionie im S ile
eine impe a i en Sk ip sp ache, die eben alls Ähnlichkei en zu SQL au weis . De
P og ammie e kann hie bei genau angeben, mi welchen Ope a ionen sich die Da en
Sch i ü Sch i ände n sollen. Die Umse zung des Wo dcoun Beispiels in Pig sieh
olgende maßen aus:
32
3.4 Apache Pig
1b=GROUP aBY wo d;
2c=FOREACH b GENERATE FLATTEN g oup,COUNT(a);
Lis ing 3.2: Umse zung des Wo dcoun Beispiels in Pig
Das Beispiel zeig , dass man den u sp ünglichen MapReduce-Code s a k minimie en
kann. Pig ha gegenübe Hi e einen g oßen Vo eil: Es kann auch mi uns uk u ie en
Da en umgehen. In diese A bei soll P ocess Mining mi uns uk u ie en Ausgangsda en
im .cs Fo ma du chge üh we den. Pig kann diese p oblemlos einlesen. Deswegen
wi d im wei e en Ve lau diese A bei Pig ü die En wicklung on MapReduce-Ab agen
e wende .
3.4 Apache Pig
De Name des Tools wu de bewuss gewähl , so soll Pig lau Hadoop-En wickle n
ähnliche Eigenscha en wie Schweine haben [
27
]: Schweine essen alles (Pig kann
mi s uk u ie en und uns uk u ie en Da en umgehen), Schweine leben übe all (Pig
läu nich nu in Ve bindung mi MapReduce, sonde n auch mi ande en pa allelen
F amewo ks) und Schweine sind gu an den Menschen angepass (Pig is ein ach in de
Bedienung und kann übe om Benu ze selbs de inie e Funk ionen leich e wei e
we den).
Die P og ammie sp ache selbs nenn sich Pig La in. Es gib d ei e schiedene Möglich-
kei en, Pig anzuwenden: en wede man üh Pig in eine Kommandozeile (Shell) aus, die
sich g un nenn . Anweisungen können hie ein ach nacheinande eingegeben we den.
Es können auch Da eien e s ell we den, die Pig Anweisungen en hal en, sogenann e
Pig-Sk ip e. De Vo eil hie bei is , dass diese abgespeiche und wiede e wende we -
den können, was o allem ü g öße e Ab agen nü zlich is . Eine wei e e Möglichkei
is es, Pig La in in den Code ande e P og ammie sp achen einzube en, sogenann es
Embedded Pig La in
. Es is beispielsweise möglich, ein Ja a-P og amm zu sch eiben
und da in Pig aus üh en zu lassen. Das übe mi el e Pig La in wi d om sogenann en
Pig La in Compile op imie und anschließend in MapReduce-Code umgewandel .
33
3 Apache Hadoop
Pig La in is eine Da en lusssp ache [
26
]. Am An ang we den eine ode meh e e Da-
ensä ze mi els eine
LOAD
-Ope a ion geladen, dann we den die gewünsch en Ope a-
ionen au die Da enmenge angewand . Die Ausgabe de E gebnisda en e olg mi els
DUMP
- ode
STORE
-Ope a ion. Die Be ehle we den nacheinande in de angegebenen
Reihen olge ausge üh . Schlei en ode beding e Anweisungen sind nich möglich. De
Pig La in Compile kann abe Ände ungen in de Aus üh ungs eihen olge o nehmen.
Folgende Beispiel-Code zeig die Funk ionsweise on Pig:
1a=LOAD ’ ile. x ’;
2...
3b=FILTER a BY ...;
4...
5c=GROUP bBY ...;
6...
7DUMP c;
8...
9STORE b INTO ou 1;
Lis ing 3.3: Beispiel ü die Funk ionsweise on Pig
Im Folgenden wi d das Da enmodell on Apache Pig o ges ell .
Da en ypen
Pig un e scheide zwischen
skala en Da en ypen
, die einzelne We e
en hal en und
komplexen Da en ypen
, die ande e Da en ypen en hal en [
28
]. Die ska-
la en Da en ypen sind iden isch mi denen, die in den meis en P og ammie sp achen
o kommen. Die wich igs en sind
in
und
long
ü Ganzzahlen,
loa
und
double
ü
Fließkommazahlen und cha a ay ü Zeichenke en.
Pig kenn d ei komplexe Da en ypen:
maps
,
uples
und
bags
. Jede diese komplexen
Da en ypen kann ande e (skala e ode komplexe) Da en ypen en hal en, siehe Abbildung
3.6. Sie haben olgende Cha ak e is iken [28]:
•Map
bes eh aus einem cha a ay und einem Da enelemen . Das Da enelemen
kann aus jedem skala en ode komplexen Da en yp bes ehen. Das cha a ay
is ein Schlüssel, und dien als Index, um das Da enelemen zu inden. Eine
Map-Kons an e kann beispielsweise olgende maßen aussehen:
[’name’#’pe e ’,
34
3.4 Apache Pig
’schuhg oesse’#’46’]
. Dies s ell ein Map mi zwei Schlüsseln da (
name
und
schuhg oesse). Das e s e Da enelemen is ein cha a ay, das zwei e ein in .
•Tuple
ha eine es geleg e Länge und bes eh aus eine geo dne en Sammlung on
Da enelemen en. Diese Da enelemen e können on jedem beliebigen Typ sein. Ein
Tuple wi d in
Fields
un e eil , jedes Field en häl ein Da enelemen . Im Ve gleich
mi eine Tabelle kann ein Tuple als eine Tabellenzeile angesehen we den. Ein
Beispiel ü eine Tuplekons an e mi zwei Fields is : (’pe e ’,46)
•Bag
is eine ungeo dne e Sammlung on Tuples, dahe können einzelne Tuples
nich e e enzie we den. Eine Bagkons an e mi d ei Tuples mi je zwei Fields
kann olgende maßen aussehen:
(’pe e ’,46),(’paul’,42),(’anna’,35)
. Bags e häl
man, wenn man Da en g uppie , wobei jede einzelne G uppe einen bag e gib .
2011
2013
2014
10
10
11
23
9
19
UAE
DLH
QFA
778
48
2
AEW
LW5
AX37
2057
902
9577
Tuple
...
Skala e
Da en yp
in
Skala e
Da en yp
cha A ay key alue
Map
...
Bag Bag
Abbildung 3.6: Ve schiedene Da en ypen in Pig La in
Inpu und Ou pu
Im Folgenden wi d die Funk ionsweise de be ei s einge üh en
Load-, S o e- und Dump-Anweisungen be ach e , die ü die Ein- und Ausgabe on
Da en so gen.
1a=LOAD ’da a.cs ’ USING PigS o age(’,’);
2STORE z INTO ’ esul .cs ’ USING PigS o age(’,’);
3DUMP z;
Lis ing 3.4: Beispiel ü ein LOAD, STORE und DUMP-Anweisungen
35
3 Apache Hadoop
Das obige Beispiel wende die Re e se Funk ion aus de piggybank an. Diese so g
da ü , dass alle Namen ückwä s ausgegeben we den.
Eine de g oßen S ä ken on Pig lieg da in, dass de Nu ze seine eigenen Use De ined
Func ions sch eiben kann und in Pig e wenden kann. Diese können mi Ja a ode
Py hon p og ammie we den. Folgende Code zeig als Beispiel, wie Pig seine in eg ie e
COUNT Funk ion in Ja a umgese z ha [28]:
1// s c/o g/apache/pig/buil in/COUNT.ja a
2public Long exec(Tuple inpu ) h ows IOExcep ion {
3 y {
4// E s es Elemen des Tuples is ein Bag, dessen
5//Anzahl an Elemen en COUNT zaehlen soll
6Da aBag bag = (Da aBag)inpu .ge (0);
7I e a o i =bag.i e a o ();
8long cn = 0;
9while (i .hasNex ()){
10 Tuple = (Tuple)i .nex ();
11 // NULL We e und lee e Tuples nich mi zaehlen
12 i ( != null && .size() > 0 &&
13 .ge (0) != null) {
14 cn ++;
15 }
16 }
17 e u n cn ;
18 }ca ch (Excep ion e) {
19 ...
20 }
21 }
Lis ing 3.17: Beispiel ü den Ja a Code eine UDF
Wenn man eine selbs e s ell e Funk ion e wenden möch e, muss man sie in Hadoops
lokales Da eisys em laden und im Pig Sk ip egis ie en.
MapReduce Plan
Fü die Aus üh ung jedes Pig Sk ip s e s ell Hadoop einen Plan.
Diese Plan leg es , welche Jobs und in welche Ab olge sie ausge üh we den sollen.
Jedem Reduce-Job geh ein Map-Job o aus. Wie oben bei den jeweiligen Ope a io-
nen schon e wähn , we den Reduce-Jobs in de Regel du ch olgende S a emen s
e zwungen: JOIN, CROSS, GROUP, COGROUP, DISTINCT, ORDER BY. Dami ha
de Compile bei de E s ellung des MapReduce Plans in Map- und Reduce-Jobs zwei
42

3.4 Apache Pig
Möglichkei en: die Ope a ionen, die beispielsweise zwischen zwei GROUP-Anweisungen
s ehen, können en wede im Reduce-Job, de zum e s en GROUP gehö , ausge üh
we den ode im Map-Job, de zum zwei en GROUP gehö [
29
]. Pig en scheide sich
hie bei imme ü die e s e Va ian e. Den Reduce-Jobs we den dadu ch meh Au ga-
ben zugeschoben. Map-Jobs sollen möglichs nu die JOIN, (CO)GROUP, DISTINCT
und ORDER BY Anweisungen umse zen. Au diese A können die Jobs e izien e
abgewickel we den.
Abbildung 3.7: Beispiel ü die Übe üh ung eines Pigsk ip s in MapReduce [29]
Abbildung 3.7 zeig , dass die Reduce-Jobs möglichs alle Au gaben zwischen zwei
GROUP S a emen s übe nehmen. Ans elle on GROUP bzw. COGROUP könn en
na ü lich auch JOIN, DISTINCT, CROSS ode ORDER BY s ehen.
In diesem Kapi el wu de mi Apache Hadoop ein Tool o ges ell , welches das Ma-
pReduce F amewo k umse z . Pig is ein We kzeug, das dabei hil , auch komplexe
Da enanalyse-Algo i hmen wie einen Heu is ic Mine kompak zu p og ammie en. T o z-
dem is de zu p og ammie ende Code gu nach ollziehba und leich e le nba . Die
Übe se zung des Pig Sk ip s in MapReduce e ledig de Compile .
Apache Hadoop und Pig we den ü die WebApplika ion benö ig , die im nächs en Kapi el
besch ieben wi d.
43
4
P o o ypische Implemen ie ung
In diesem Kapi el wi d
P oDoop
o ges ell , eine WebApplika ion, mi de sich au Basis
on MapReduce P ocess Mining du ch üh en läss .
4.1 P oblems ellung
Die G undbeobach ung ü die En wicklung on P oDoop bes and da in, dass es iele
Un e nehmen gib , die E en Logs on P ozessen speiche n [
11
]. Zudem e olgen sie
den BPM Li ecycle und möch en ih e P ozessmodelle egelmäßig e besse n. Obwohl
P ocess Mining eine geeigne e Möglichkei zu P ozessen deckung is , ehl es den Un e -
nehmen am nö igen Wissen, wie dieses angewende wi d. P oDoop lös dieses P oblem,
es e o de lediglich die Übe mi lung on Logda en und kann da au P ocess Mining
Algo i hmen “pe Mausklick” anwenden. Fü die Ve a bei ung on Da en e wende es
45
4 P o o ypische Implemen ie ung
MapReduce und das Apache Hadoop F amewo k. P oDoop is anwende eundlich übe
den B owse zu bedienen, E gebnisse we den op isch ansp echend in e schiedenen
G a iken da ges ell .
4.2 So wa ea chi ek u
P oDoop wi d übe den B owse bedien . Auße dem wi d ein Hadoop Clus e e wende ,
dessen HDFS als Da enbank dien und das MapReduce P og amme aus üh . P oDoop
is eine Web Applika ion. Da Hadoop as olls ändig in Ja a p og ammie wu de [
19
]
und eine um assende Ja a API en häl , wi d Ja a als P og ammie sp ache ü P oDoop
e wende .
Tomca Vi ual Machine
Ja a EE P og ammB owse Hadoop Clus e
h p Reques
h p Response
h p Reques
(Fileupload,
pig Ab age)
h p Response
(pig E gebnisse)
Abbildung 4.1: A chi ek u de e s ell en So wa eapplika ion
Als Hadoop-Implemen ie ung wi d die Ho onwo ks Sandbox e wende : diese s ell eine
o kon igu ie e Hadoop-Umgebung be ei , die speziell da ü en wickel wu de, Hadoop
au eine VM auszu üh en [
30
]. Ein Webb owse s ell die Websei en im HTML-Fo ma
da . Übe den B owse kann de Nu ze mi de Ja aEE-Applika ion in e agie en. Die
Ve bindung e olg übe HTTP-Reques und -Responses.
Auße dem wi d ein
Apache Tomca
Webse e e wende , au dem P oDoop läu .
Da übe wi d de Kon ak zum B owse abe auch die Ve bindung zum Hadoop Clus e
he ges ell . Im Folgenden wi d de Au bau on Tomca be ach e .
46
4.2 So wa ea chi ek u
Abbildung 4.2: Au bau eines Tomca Webse e s [31]
Tomca -Se e
Apache Tomca
is ein Open-Sou ce Ja a-Anwendungsse e [
32
]. Die A chi ek u on
Tomca bes eh aus olgenden Elemen en [31]:
Con ex
is die inne s e Komponen e. Jedes Con ex -Elemen en häl eine einzelne
Webapplika ion.
Ein
Connec o
so g mi Hil e eines TCP-Po s da ü , dass Ve bindungen zwischen
Applika ionen und Clien s he ges ell we den. Im o liegenden Fall e möglich e die
HTTP-Ve bindungen zwischen Webapplika ion und B owse sowie zwischen Webappli-
ka ion und Hadoop Clus e .
Jede
Hos -Komponen e
en häl einen
Vi ual Hos
: diese is die Ve bindung eines
DNS-Namens, wie z.B. www.meineDomain.de mi dem Se e . Jede Se e kann meh-
e e Hos s en hal en. Gleichzei ig kann ein Hos meh e e Webapplika ionen en hal en.
S anda dmäßig wi d de Hos
localhos
e wende . Diese wi d ü die o liegende
Anwendung e wende .
Eine
Engine
en häl einen ode meh e e Hos s. In de en wickel en Anwendung wi d eine
Engine namens
Ca alina
e wende [
33
]. Ca alina e a bei e alle übe den Connec o
47

4 P o o ypische Implemen ie ung
eingehenden HTTP-Reques s, lei e sie an den zugehö igen Hos wei e und e sende
die Responses zu ück zum Clien .
Die
Se ice-Komponen e
e binde einen ode meh e e Connec o en mi den zuge-
hö igen Engines. Jede Tomca -Ins anz en häl ein einziges Se e -Elemen . Dieses
wiede um beinhal e eine ode meh e e Se ice-Komponen en.
Die o ges ell e Hie a chie bie e g oße Flexibili ä ü e schiedene Anwendungen. Eine
Tomca -Ins anz sowie eine Ca alina-Engine eichen ü die An o de ungen on P oDoop
aus.
Um P ocess Mining du ch üh en zu können, wende P oDoop au Logda en P ocess
Mining Algo i hmen an. Un e ande em wi d de Heu is ic Mine aus Kapi el 2.2.1 dazu
e wende .
4.3 Heu is ic Mining mi Pig
Im Folgenden wi d die Implemen ie ung eines Heu is ic Mine s in Pig, das in Kapi el 3.4
o ges ell wi d, besch ieben. Hie bei wu den ausschließlich Ope a ionen und Funk io-
nen, die das Pig-F amewo k zu Ve ügung s ell , sowie solche, die in de Piggybank
en hal en sind, e wende .
Die Implemen ie ung als Pig-Sk ip kann in 3 Teile au ge eil we den.
1REGISTER piggybank.ja ;
2callcen e =load ’$INPUT’ using o g.apache.pig.piggybank.
3s o age.CSVExcelS o age(’,’,’NO_MULTILINE’,’UNIX’,
4’SKIP_INPUT_HEADER’);
5/*Diese Anweisung laed die Inpu da ei. De e s e Pa ame e on
CSVExcelS o age gib an, dass KOMMA als Sepa a o e wende wi d,
dami wi d eine .cs Da ei geladen. SKIP_INPUT_HEADER gib an, dass
die e s e Zeile (Uebe sch i ) nich eingelesen wi d. */
6b=FOREACH callcen e GENERATE $0 AS se iceID,$3 AS ope a ion,$1 AS
s a da e,$2 AS endda e;
7/*in b we den 4 Fields on a uebe nommen und benann : 1.Field se iceID;
4.Field ope a ion; 2.Field s a da e; 3.Field endda e */
8s a 3=GROUP bBY ope a ion;/*b wi d nach dem Field ope a ion g uppie
; alle Reco ds eine G uppe we den in einem bag gespeiche */
9s a 4=FOREACH s a 3 GENERATE g oup,COUNT(b);/*Gene ie ope a ion als
1.Field in s a 4; 2.Field: COUNT zaehl alle Reco ds, die in eine
G uppe sind */
48
4.3 Heu is ic Mining mi Pig
10 STORE s a 4 AS ou 1;
11 /*s a 4 wi d als ou 1 gespeiche . s a 4 gib an, welche Ope a ionen
insgesam wie o in de Da enbasis o kommen */
Lis ing 4.1: Umse zung des Heu is ic Mine s in Pig: Teil 1
De e s e Sk ip -Teil beginn dami , dass in den Alias
callcen e
die Ausgangsda en
geladen we den. Das E gebnis wi d als s a 4 in HDFS gespeiche .
1bWi hEpoch=FOREACH b GENERATE se iceID,ope a ion,ToDa e(s a da e,’
yyyy/MM/dd H:mm:ss.SSS’,’Eu ope/Be lin’)as epoch1,ToDa e(endda e,’
yyyy/MM/dd H:mm:ss.SSS’,’Eu ope/Be lin’)
2as epoch2;
3/*bWi hEpoch uebe nimm on b die Fields se iceID und ope a ion; das
Field s a da e wi d ins Da e-Fo ma umgewandel und als epoch1
gespeiche . yyyy/MM/dd H:mm:ss.SSS gib das Fo ma an, in dem
s a da e gespeiche is . Das Field endda e wi d ins Da e-Fo ma als
epoch2 umgewandel .*/
4bWi hEpoch2=FOREACH bWi hEpoch GENERATE $0 AS se iceID2,
5$1 AS ope a ion2,$2 AS epoch12,$3 AS epoch22;
6/*bWi hEpoch2 speiche eine Kopie on bWi hEpoch, benenn die Fields
abe um. Dies wi d spae e benoe ig , da Pig keine Selbs -Joins
du ch ueh en kann. */
7jn=GROUP bWi hEpoch BY $0;/*g uppie bWi hEpoch nach se iceID*/
8B=FOREACH jn{
9so ed=ORDER bWi hEpoch by epoch1 ASC,
10 lim =LIMIT so ed1;
11 GENERATE FLATTEN (lim);
12 };
13 /*NESTED FOREACH: meh e e Anweisungen we den au jede G uppe angewand :
E s we den alle Reco ds au s eigend nach epoch1 geo dne ; dann wi d
nu de e s e Reco d uebe nommen, alle ande en we den e wo en. Mi
GENERATE FLATTEN wi d de bag au geloes und in Tuples umgewandel .
14 B gib ue jede Ins anz an, welche Ope a ion als e s es du chge ueh
wu de */
15 C=GROUP BBY ope a ion;/*g uppie B nach dem Field ope a ion*/
16 D=FOREACH C GENERATE FLATTEN(g oup)AS (ope a ion),
17 COUNT(B)AS ope a ioncoun ;
18 /*GENERATE FLATTEN loes den bag wiede au und wandel die Da ensae ze
in Tuples um. C en hael als 1. Field den G uppenname: ope a ion; als
2.Field die Anzahl de Reco ds, die sich im jeweiligen bag be unden
ha .*/
19 STORE D AS ou 2;
20 /*D gib aus, wie o jede einzelne Ope a ion als E s es in eine
Ins anz e olg is */
Lis ing 4.2: Umse zung des Heu is ic Mine s in Pig: Teil 2
49
4 P o o ypische Implemen ie ung
De 2. Sk ip -Teil e zeug eine Ausgabe (
ou 2
), die ü jede einzelne Ope a ion angib ,
wie o sie als e s es in eine Ins anz e olg is .
1d=JOIN bWi hEpoch BY se iceID,bWi hEpoch2 BY se iceID2;
2/*JOIN on bWi hEpoch mi bWi hEpoch2 nach se iceID bzw. se iceID2.
Dies is im Ende ek ein JOIN alle Da en mi sich selbs , g uppie
nach Ins anz. */
3e=FOREACH d GENERATE $0,$1,$2,$3,$4,$5,$6,Minu esBe ween($6,$2)AS
minu es,$7;
4/*e uebe nimm alle Fields aus d; Zusae zlich wi d minu es als 8.Field
au genommen. minu es gib die zei liche Dis anz in Minu en zwischen
epoch1 ( on bWi hEpoch) und epoch12 ( on bWi hEpoch2) an. epoch1 und
epoch12 sind die jeweiligen S a zei punk e de Ope a ionen*/
5 =FILTER e BY (minu es>=0) AND ($3!=$8);
6/* uebe nimm nu diejenigen Reco ds on e, bei denen minu es>=0 is
und die Endzei punk e de Ope a ionen nich gleich sind ($3!=$8).
Dami we den in Paa e on Ope a ionen gespeiche , on denen die
zwei e nach de e s en s a e (ode gleichzei ig). Dass die e s e und
die zwei e Ope a ion gleich sind, wi d ausgeschlossen */
7g=GROUP BY ($0,$1,$2);/* wi d g uppie nach se iceID, ope a ion
und epoch1 (S a zei punk )*/
8h=FOREACH g{so ed=ORDER BY $7 ASC;
9lim=LIMIT so ed 1;
10 GENERATE FLATTEN (lim);
11 };
12 /*in jede G uppe we den die Reco ds au s eigend geo dne nach $7 (
minu es). lim waehl in jede G uppe nu den obe s en Reco d aus.
GENERATE FLATTEN loes den bag au und e wandel den Da ensa z in ein
Tuple.*/
13 /*in h wi d somi in jede Ins anz ue jede da in o kommende Ak ion
be echne , welche Ope a ion di ek danach komm */
14 i=GROUP hBY ($1,$5);/*hie wi d h g uppie nach ope a ion de e s en
Ope a ion ($1) und nach ope a ion de zwei en Ope a ion ($5) */
15 j=FOREACH i GENERATE FLATTEN (g oup), COUNT(h)AS ope a ioncoun ;
16 /*GENERATE FLATTEN wandel den bag in einen Tuple um. 1.Field: ope a ion
de e s en Ope a ion; 2.Field: ope a ion de zwei en Ope a ion; 3.
Field: Anzahl de Reco ds, die im bag wa en */
17 STORE j AS ou 3;
18 /*ou 3 gib ue jede Kombina ion on 2 Ope a ionen aus, wie o
Ope a ion 1 on Ope a ion 2 ge olg wi d */
Lis ing 4.3: Umse zung des Heu is ic Mine s in Pig: Teil 3
Die Ausgabeda ei
ou 3
on P og amm eil 3 gib ü jede mögliche Kombina ion on 2
Ope a ionen aus, wie o Ope a ion 1 on Ope a ion 2 inne halb eine P ozessins anz
ge olg wi d.
50
4.3 Heu is ic Mining mi Pig
Somi en hal en ou 1,ou 2 und ou 3 die ü den Heu is ic Mine benö ig en Da en ( gl. Ta-
belle 2.2 und Tabelle 2.3). Zu E s ellung de Tabellen sind wei e e Be echnungen nö ig,
die on P oDoop du chge üh we den.
Abbildung 4.3 zeig den Ablau plan des Pig-Sk ip es ü den Heu is ic Mine . Die K eise
in Abbildung 4.3 en hal en jeweils einen Alias, un e dem ein Da ensa z zwischenge-
speiche wi d. Die P eile zeigen an, in welche Rich ung eine T ans o ma ion de Da en
s a inde . Sie geben auße dem an, mi welche Anweisung die T ans o ma ion e olg
(z.B. FILTER, FOREACH, GROUP e c.).
callcen e
is de einzige Alias, de keine eingehende Kan e ha , denn
callcen e
läd den Ausgangsda ensa z.
s a 4
,
D
und
j
besi zen keine ausgehenden Kan en.
Sie dienen als E gebnis und we den als ou 1,ou 2 und ou 3 gespeiche .
Die P og ammlogik kann, wie in Abbildung 4.3 zu sehen is , in 3 Teile un e eil we den.
Jede P og amm eil ende mi de Abspeiche ung eines Da ensa zes (
s a 4
,
D
und
j
). In den T ans o ma ionen sind hie bei Mus e zu e kennen: zu Beginn eines P o-
g amm eils wi d häu ig
FILTER
und
FOREACH
e wende , dami wi d die Da enmenge
e inge . Mi
FILTER
we den unnö ige Log-Ein äge ausso ie und mi
FOREACH
we den unnö ige Fields ausso ie (linke und ech e Teil des Sk ip es). Die Ve inge-
ung de Da enmenge zu Beginn eines Sk ip -Teils is nö ig, um die Aus üh ung des
P og amms e izien zu ges al en
Jede P og amm eil ende mi den 2 au einande olgenden Anweisungen
GROUP
und
FOREACH,COUNT
. Mi
GROUP
wi d nach einem Field g uppie . Da aus esul ie en iele
G uppen. Jede G uppe en häl den G uppennamen und einen Bag, in dem alle Reco ds
diese G uppe en hal en sind. Mi de anschließenden
COUNT
Anweisung we den alle
Reco ds gezähl , die in diese G uppe gespeiche sind.
Nach Ablau des linken Sk ip -Teils e olg eine G uppie ung nach
Ope a ion
. Mi
COUNT
wi d gezähl , wie iele Reco ds in eine G uppe sind. Als E gebnis e häl man, wie o
jede Ope a ion insgesam in de Da enbasis o komm .
Ein wei e es Mus e , das im mi le en und ech en Sk ip -Teil e wende wi d is die
Kombina ion eine
GROUP
Anweisung mi anschließendem
FOREACH, ORDER
. Dami
wi d nach einem Field g uppie . Die esul ie enden Bags we den anschließend geo dne .
51
4 P o o ypische Implemen ie ung
Abbildung 4.7: Hadoop Analyse unk ion auswählen in P oDoop
Pig Ja a API
Um eine Pig Ab age du chzu üh en, muss P oDoop Kon ak mi dem
Hadoop Clus e au nehmen. Dies wi d om Con olle on P oDoop übe nommen. P o-
Doop be ücksich ig auße dem die on einem Use du chge üh en Feldzuo dnungen.
De Con olle sende die Pig Ab age ans Hadoop Clus e und emp äng anschließend
die Resul a e on diesem. Die Kommunika ion zwischen P oDoop und Hadoop Clus e
wi d du ch die Pig Ja a API e möglich .
Um eine Pig Ab age an Hadoop zu übe mi eln, kann die Klasse
PigSe e
e wende
we den [27]. Diese bie e zwei Me hoden:
•
public oid
egis e Sc ip
(ja a.lang.S ing ileName, ja a.u il.Map<ja a.lang.S ing,
ja a.lang.S ing> pa ams) h ows ja a.io.IOExcep ion
Als
ileName
wi d ein Pig-Sk ip angegeben, da in können Va iablen eingebau
we den. Mi
pa ams
wi d eine Map angegeben, die es leg , wie die Va iablen
e se z we den sollen.
•public oid egis e Que y(ja a.lang.S ing que y) h ows ja a.io.IOExcep ion
übe gib einen Pig La in Ausd uck mi de Va iablen
que y
als S ing und egis ie
diesen. Das Resul a de Ab age kann mi els
openI e a o ()
emp angen
we den.
58

4.4 Umse zung in Ja aEE
In P oDoop wi d die Me hode
egis e Que y
e wende , da die Ve wendung on
Va iablen im o liegenden Anwendungs all wesen lich ein ache is als mi de Me hode
egis e Sc ip . Folgende P og ammauszug zeig die Ve wendung:
1//...
2impo o g.apache.pig.ExecType;
3impo o g.apache.pig.PigSe e ;
4impo o g.apache.pig.da a.Tuple;
5
6public class e s eAk ionVe gleichen {
7public in e s eAk ionVe gleichen(H pSession session,S ing s ) h ows
IOExcep ion{
8//...
9S ing s="S a ope a ionen: <b >";//de E gebniss ing s wi d
ins an iie
10 PigSe e pigSe e =new PigSe e (ExecType.MAPREDUCE);
11 //eine neue Ins anz de PigSe e Klasse wi d ges a e ;
MapReduce wi d zu Aus ueh ung on Pig gewaehl
12 pigSe e . egis e Que y(" ile = load ’/use /hue/ iles o ja a/"+(
S ing)session.ge A ibu e("chosenFile")+"’ USING PigS o age
(’,’);");
13 //mi egis e Que y wi d Zeile ue Zeile das Pig-Sk ip
uebe mi el
14 pigSe e . egis e Que y("a= FILTER ile BY NOT ($0 MATCHES ’"+(
S ing)session.ge A ibu e(" i s LineFi s Column")+"’);");
15 pigSe e . egis e Que y("b = FOREACH a GENERATE $"+session.
ge A ibu e("ins ancelogRow"). oS ing()+" as se iceID, $"+
session.ge A ibu e(s +"Row"). oS ing()+" as ope a ion , $"
+session.ge A ibu e(" imes amp1Row"). oS ing()+" as da e;")
;
16 //hie s eh das es liche Pig-Sk ip mi egis e Que y
17 pigSe e . egis e Que y("D= FOREACH C GENERATE FLATTEN(g oup) AS
(ope a ion), COUNT(B) AS ope a ioncoun ;");
18 //eine S o e ode Dump Anweisung am Ende is nich noe ig
19 I e a o <Tuple>i e a o =pigSe e .openI e a o ("D");
20 //openI e a o ue Alias D wi d angewand . Dami wi d das
gewuensch e E gebnis des Pigsk ip s abge u en
21 while(i e a o .hasNex ()){
22 Tuple uple =i e a o .nex ();
23 //das E gebnis wi d in einzelne Tuple au ge eil
24 i ( uple.ge (0). oS ing()!=null){
25 //...
26 s=s+ uple.ge (0). oS ing()+" "+ uple.ge (1). oS ing()+
"<b >";
27 }//jedes Tuple wi d als S ing an den E gebniss ing
angehaeng
28 }
29 //...
30 session.se A ibu e(" esul S ing",s);
31 //de E gebniss ing wi d als Session a iable gespeiche
32 }
33 }
59
4 P o o ypische Implemen ie ung
Lis ing 4.4: Anwendung on egis e Que y und open I e a o aus de PigSe e Klasse
Mi meh e en Au u en on Me hode
egis e Que y
wi d nach und nach die jeweilige
Pig Ab age abgea bei e . Va iablen können als S ing einge üg we den. Mi de Me hode
pigSe e .openI e a o ("x")
kann das E gebnis abge u en we den [
27
]. De
übe gebene Pa ame e
x
gib an, ü welchen Alias de I e a o geö ne we den soll.
Zu ückgegeben wi d ein I e a o on Tupeln. Im P og amm we den alle Tupel du chi e ie .
De Inhal jedes Tupels wi d als S ing in die Va iable
s
gespeiche . Diese wi d am Ende
als Session Va iable gespeiche . Diesen S ing u die JSP-Da ei, die ü die Da s ellung
des E gebnisses zus ändig is , wiede ab. Dami is eine ex uelle Ausgabe des Resul a s
möglich. Um eine op ische Da s ellung des Resul a s zu e möglichen we den on
de Modelsei e die nö igen Da en als A ays in eine Session Va iable gespeiche
und können dann on de JSP-Da ei wei e e a bei e we den. Zu Da s ellung des
E gebnisses als Diag amm ode als G aph wi d Ja asc ip Code in die JSP-Da ei
eingebe e . Sieh man on de Da s ellung on G aphen ab (Heu is ic Mine und Social
Ne wo k), so kann das Cha .js-F amewo k, das im Folgenden o ges ell wi d, die
jeweiligen E gebnisse ansp echend da s ellen.
Cha .js
Die Ja asc ip Biblio hek
Cha .js
bie e die Möglichkei , e schiedene Da -
s ellungs o men ü die Resul a e zu wählen [
35
]. In P oDoop we den de
Doughnu -
,
Rada -
und de
Ba -Cha
e wende . De Doughnu Cha is dann in e essan , wenn
man ela i e An eile on meh e en G ößen zueinande e gleichen möch e.
Das Beispiel in Abbildung 4.8 zeig , welche S a ope a ionen an eilig in einem E en Log
o kommen (Da enbasis: Callcen e Example.cs ). Es is also zu sehen, dass in dem
un e such en Callcen e ein Fall übe wiegend du ch eingehende An u e ges a e wi d
(Inbound Call, 3291). Emails (Inbound Email, 385 (blau) und Handle Email, 163 (gelb))
s ehen iel sel ene am An ang eines Falls.
Eine ande e Möglichkei , Da en da zus ellen, bie e de Rada -Cha .
60
4.4 Umse zung in Ja aEE
Call Ou bound. 15
Inbound Email. 385
Email Ou bound. 4
Handle Case. 27
Handle Email. 163
Inbound Call. 3291
Abbildung 4.8: Beispiel ü einen Doughnu Cha in P oDoop
Abbildung 4.9: Beispiel ü einen Rada Cha in P oDoop
Wi d als Pig Ab age
Hando e o wo k o a single pe son
gewähl und dann als Pe son
beispielweise
Ma is F eeman
ausgewähl (bei Ve wendung de Da enbasis Pu chasing-
Example.cs ), dann wi d de Rada -Cha aus Abbildung 4.9 ausgegeben. Hie wi d
da ges ell , an welche Mi a bei e Ma is F eeman ih e A bei übe gib . Es is auch zu
e kennen, dass sie einen Teil de Fälle selbs beende .
Falls als Resul a zwei e schiedene Da ensä ze e glichen we den sollen, bie e sich
de Ba -Cha an.
61
4 P o o ypische Implemen ie ung
Abbildung 4.10: Beispiel ü einen Ba Cha in P oDoop
De g aue Balken in Abbildung 4.10 zeig , wie iele Ak ionen ein Mi a bei e insgesam
du chge üh ha (Da enbasis: Pu chasingExample.cs ). De blaue Balken s eh ü die
gesam e Zei in Minu en, die ein Mi a bei e da ü benö ig ha (Ne oa bei szei ). In de
G a ik is un e ande em zu e kennen, dass
Ka el de G oo
,
Magdalena P edu a
und
F ancois de Pe ie die meis en Fälle bea bei e haben.
Um die E gebnisse on P ocess Mining Ab agen da zus ellen, wi d eine Ja asc ip
Biblio hek benö ig , die G aphen da s ellen kann. Cy oscape.js is eine solche Biblio hek,
die im Folgenden einge üh wi d.
Cy oscape.js Cy oscape.js
is eine Open-Sou ce G aph-Biblio hek, die an de Uni-
e si ä on To on o en wickel wu de [
36
]. Cy oscape.js kann G aphen mi ge ich e en
und unge ich e en Kan en e schiedene G öße da s ellen und is somi in de Lage,
P ozessmodelle und Social Ne wo ks zu e a bei en und da zus ellen. Um einen G aph
ausgeben zu können, benö ig Cy oscape.js die Angabe on
Kno en
und
Kan en
. Kno-
en können als K eise da ges ell we den. Besonde s hil eich is die Möglichkei , die
Kno eng öße und die Kan endicke indi iduell zu kon igu ie en. Dies nu z P oDoop
beispielsweise, um o equen ie e Kno en g öße anzuzeigen. Auße dem wi d die
Liniendicke in Abhängigkei on de Häu igkei gese z , mi de die Kan e genu z wi d.
62
4.4 Umse zung in Ja aEE
Cy oscape.js bie e eine Layou o lage an, die einen ge ich e en G aphen mi einem
S a kno en als Wu zelelemen e s ell . Dabei we den die Posi ionen de es lichen
Kno en selbs s ändig be echne (au oma isches Layou ing). Cy oscape.js bie e auße -
dem einige In e ak ionsmöglichkei en ü Benu ze . Diese können beispielsweise einen
G aphen inne halb de Da s ellungs läche eines B owse s e schieben, sowie einzelne
Kno en e schieben und in den G aph hinein- und he auszoomen. Dies is o allem bei
G aphen mi ielen Elemen en nü zlich, um einzelne Abhängigkei en zu e kennen.
Abbildung 4.11 zeig das E gebnis des Heu is ic Mine s (Da enbasis: Pu chasingEx-
ample.cs ) bei einem Th eshold on 207 und 0.74. De Th eshold kann on Benu ze n
manuell gese z we den. Die Kno en neben dem S a kno en sind zwa Teil des P o-
zesses, sie besi zen abe keine Kan en zum es lichen G aphen, die den Th eshold
übe e en wü den.
Einen G aphen gleiche Baua benö ig man ü die soziale Ne zwe kanalyse. Abbil-
dung 4.12 zeig , wie das E gebnis da ü on Cy oscape.js da ges ell wi d. Als Th eshold
wu de 0.1 gewähl (Da enbasis: Pu chasingExample.cs ). Da de G aph ziemlich iele
Elemen e en häl , emp iehl es sich, mi dem Th eshold zu a iie en. Die Zoom unk ion
und das Ve schieben on Kno en kann eben alls die Übe sich e höhen.
In diesem Kapi el wu de mi P oDoop eine WebApplika ion o ges ell , die P ocess
Mining Algo i hmen mi Hil e des Map educe P og ammie modells implemen ie und
e schiedene g a ische Da s ellungs o men de E gebnisse bie e . P oDoop kann mi
wenig Au wand e ände ode e wei e we den. Denkba sind dabei die Implemen-
ie ung wei e e Mining Algo i hmen, die mi Pig eingebe e we den können. Möglich
is auch die Anbindung an ein g öße es Hadoop Clus e , um g oße Da enmengen zu
e a bei en. Denkba wä e zudem, die WebApplika ion übe das In e ne be ei zus ellen,
dami könn e P oDoop on Kunden wel wei e wende we den.
Die Wahl on MapReduce als P og ammie modell und ü Apache Hadoop als F ame-
wo k wu de un e Ande em mi de gu en E izienz bei g oßen Da enmengen beg ünde .
Um dies nach ollziehen zu können, soll die Leis ungs ähigkei on P oDoop im olgenden
Kapi el e aluie we den.
63

4 P o o ypische Implemen ie ung
Abbildung 4.11: Das E gebnis des Heu is ic Mine s mi Cy oscape.js
64
4.4 Umse zung in Ja aEE
Abbildung 4.12: Das E gebnis de Social Ne wo k Analysis mi Cy oscape.js
65
5
E aluie ung
In Kapi el 4 wu de die P oDoop WebApplika ion o ges ell , mi de en Hil e P ocess
Mining au Basis on MapReduce du chge üh we den kann. Die Wahl on MapReduce
als F amewo k ü die Da enanalyse wu de mi dessen gu e E izienz beg ünde . Diese
wu de on ande en Quellen e mi el . In diesem Kapi el soll in einem Expe imen es ge-
s ell we den, wie leis ungs ähig MapReduce bei de Umse zung eines P ocess Mining
Algo i hmus is .
5.1 F ages ellung
Ziel des Expe imen s is es, die E izienz on MapReduce zu e mi eln. Da ü we den
die Aus üh ungszei en eines P ocess Mining Algo i hmus au Basis on MapReduce
67
5 E aluie ung
zuge üg wi d. Insgesam gil also: je g öße die Da enmenge, des o meh Mappe und
Reduce we den benö ig . Dies muss ü die Bewe ung de E gebnisse des Expe imen s
be ücksich ig we den.
Zunächs e kenn man in Abbildung 5.4, dass die Bea bei ungszei nie deu lich un e
zwei Minu en sink . Auch wenn die Da eig öße noch so klein gewähl wi d, bleib eine
un e e G enze on e wa 120 Sekunden. Ein G und hie ü is , dass Hadoop einen
ziemlich hohen Ve wal ungsau wand ha . Die Zei , die Hadoop benö ig , um Mappe und
Reduce zu s a en und E gebnisse zusammenzu ügen, is bei kleinen Da enmengen im
Ve gleich zu a sächlichen Rechenzei ela i hoch. Bei g oßen Da enmengen äll dies
nich so seh ins Gewich . Dies zeig , dass Hadoop ü kleine Da enmengen wenige
geeigne is .
Abgesehen on ganz kleinen Da enmengen bis 10 MB is zu beobach en, dass bei
s eigende Clus e g öße die Bea bei ungszei abnimm . Dies is nach ollziehba , da
jede Job in meh e e Mappe und Reduce au ge eil wi d. Wenn meh Nodes zu
Ve ügung s ehen, eil Hadoop jedem Node Mappe und Reduce zu, die abzua bei en
sind, d.h., bei s eigende Clus e g öße das Maß an Pa alleli ä zunimm . Bei kleinen
Da enmengen i diese E ek wenige s a k ein, da hie die meis en Jobs nu aus
einem Mappe und einem Reduce bes ehen.
Zu e kennen is auße dem, dass die S eige ung de Clus e g öße un e schiedliche
Auswi kungen au die Bea bei ungszei en ha . Je g öße die Da enmenge, des o besse
is de E ek de Skalie ung.
Die Geschwindigkei de Be echnung des Clus e s kann als
1/
bes imm we den, wobei
die Bea bei ungszei des Clus e s is . Diese Geschwindigkei kann abhängig on de
Clus e g öße da ges ell we den, wie in Abbildung 6.2 zu sehen is . Als Ve gleichswe e
zeig die gelbe Linie den Fall eines linea en Ans iegs bei s eigende Clus e g öße. Diese
kann als Ideal all angesehen we den. Das Diag amm zeig , dass de Geschwindigkei s-
ans ieg im Expe imen bei eine Da enmenge on 10 GB as linea is (blaue Linie). Das
heiß , dass bei eine Ve doppelung de Clus e g öße nu e wa die halbe Be echnungszei
benö ig wi d.
74

5.6 Bewe ung des Expe imen s
0,00005
0,00015
0,00025
0,00035
0,00045
0,00055
1 2 3 4 5 6 7 8 9 10 11
Geschwindigke
Clus e g öße Clien nodes
Geschwindigkei bei a iable Clus e g öße
Geschwindigkei Linea Speedup
Abbildung 5.5: Geschwindigkei de Be echnungen in Abhängigkei de Clus e g öße
5.6 Bewe ung des Expe imen s
Das Expe imen ha gezeig , dass MapReduce einen gewissen Ve wal ungsau wand
benö ig . Die gemessene Bea bei ungszei kleine Da ensä ze zeig , dass MapReduce
hie Lau zei nach eile mi sich b ing . Eine klassische Be echnung ohne MapReduce
is hie zu be o zugen. Bei g oßen Da enmengen äll die Bea bei ungszei ü Ve -
wal ungsau gaben wenige ins Gewich . Es konn e soga gezeig we den, dass bei
eine Da enmenge on 10GB schon eine nahezu linea e Skalie ba kei on MapReduce
e eich wi d. Falls de Anwende die Rechenzei e kü zen möch e, so genüg eine
E höhung de Clus e g öße. Besonde s in e essan is de beobach e e E ek bei 10GB
Da eig öße aus Abbildung 6.2, bei de eine Ve doppelung de Clus e g öße nahezu zu
eine Halbie ung de Rechenzei ge üh ha . Bei Nu zung de Amazon AWS s ehen den
doppel en Kos en ü das Clus e die Häl e de Gebüh en ü die Zei gegenübe . Die
Kos en bleiben also e wa gleich, was aus wi scha liche Sich zu beg üßen is .
75
6
Diskussion
In Kapi el 5 wu de ein Expe imen o ges ell , das in e essan e E gebnisse gelie e ha .
Dabei muss alle dings be ücksich ig we den, dass keine ealen Ausgangsda en e wen-
de we den konn en. Die eale Da enbasis be ug lediglich 1MB. Diese wu de dann au
eine G öße on bis zu 10GB au gebläh , dabei abe pe Zu allsmodus modi izie . De
e mi el e E ek ha dennoch Aussagek a . Es is zu e wa en, dass de E ek bei ealen
Da en ähnlich is , die absolu gemessenen Be echnungszei en können sich alle dings
ände n. Die e mi el e Skalie ba kei on MapReduce konn e auch on ande en Quellen,
wie e wa in Abbildung 6.1, gezeig we den [
18
,
40
]. Dies is ein Anzeichen da ü , dass
MapReduce ü BigDa a Anwendungen gu geeigne is .
77
6 Diskussion
Abbildung 6.1:
Geschwindigkei on e schiedenen MapReduce Implemen ie ungen bei
s eigende Clus e g öße [18]
6.1 Job uning
Wenn man die E gebnisse des Expe imen s be ach e , s ell sich die F age, ob eine
Ve g öße ung des Clus e s die einzige Möglichkei is , um die Bea bei ungszei zu
e kü zen. Imme hin bie e Hadoop iele Möglichkei en das Clus e und die Aus üh ung
on Jobs zu spezi izie en. Zu wei e en Op imie ung bie en sich olgende Maßnahmen
an [14]:
•Pig-Sk ip op imie en
Es gib un e ande em olgende Möglichkei en, wie Pig-
Sk ip e e besse we den können [27]:
–
STORE ans elle on DUMP e wenden. Bei Ve wendung on DUMP müs-
sen un e Ums änden meh Jobs du chge üh we den, was wiede um die
Aus üh ung e langsam .
–
FILTER-Anweisungen so üh und so o wie möglich e wenden. Dami wi d
die Anzahl de Reco ds e inge , die bea bei e we den müssen.
78
6.1 Job uning
–
Nu solche Fields speiche n, die zu wei e en Be echnung benö ig we den
(z.B.:
E = o each D gene a e $0, $1;
). Dami kann die Da enmenge e inge
we den.
•Anzahl Reduce op imie en
In den Hadoop G undeins ellungen wi d p o GB Da en-
g öße ein Reduce e wende . Eine Ve ände ung de Anzahl e wende e Reduce
kann hie sinn oll sein. Ein höhe e We kann die Pa alleli ä e höhen, zu ie-
le Reduce üh en jedoch zu e höh em Ne zwe k e keh , de die Shu le Phase
ausb emsen kann [
41
]. Als Ideal all be äg die Daue eines Reduce s meh e e
Minu en. Dies häng abe auch da on ab, wie CPU-in ensi die Jobs sind.
Im Expe imen aus Kapi el 5 wu den einige Reducephasen beobach e , die iel Zei
benö ig haben (siehe Tabelle A.3). Zu Tes zwecken wu de die Anzahl Reduce bei
1GB Da enmenge und 8 Kno en e ände . Die E gebnisse sind in Abbildung 6.1
zu sehen.
•Anzahl Mappe op imie en
Die Anzahl de e wende en Mappe ich e sich s an-
da dmäßig nach de Anzahl de e wende en HDFS Blöcke. Sie kann du ch die
Blockg öße e ände we den, ode du ch Angabe on
map ed.min.spli .size
im
Pig-Sk ip kon igu ie we den. Da das Se up eines Mappe s eine gewisse Zei
benö ig , soll e die Anzahl Mappe so gewähl we den, dass jede Mappe min-
des ens eine Minu e läu [
41
]. Im Expe imen wu de mi un e schiedliche Zahl
Mappe ge es e (siehe auch Abbildung 6.1).
•In e media e Resul s komp imie en
Die Ou pu s de Map-Phase we den übe s
Ne zwe k zu den Reduce n kopie . Eine Komp imie ung diese Da en kann zu
eine Ve inge ung des Ne zwe k e keh s üh en. Diese Me hode wu de bei eine
Da enmenge on 1GB ge es e . Es e gaben sich alle dings keine signi ikan en
Un e schiede in de Bea bei ungszei . Ve mu lich i de e wa e e E ek e s bei
g öße en Da enmengen au .
In den E gebnisda en des Expe imen s aus Kapi el 5 is ü die Va ian e mi 1GB
Da eng öße und einem Clus e mi 9 Kno en Ve besse ungspo en ial zu sehen (siehe
Tabelle A.3). Die Aus üh ungszei en de d i en und ie en Reducephase sind deu lich
länge als die ande en Reducephasen. Dahe wi d in diesem Expe imen bei den
79

6 Diskussion
00:00:00 00:02:53 00:05:46 00:08:38 00:11:31 00:14:24 00:17:17
s anda d
educe 8+11
educe 16+22
mappe 32MB
mappe 256MB
Ve gleich de Aus üh ungszei en bei e ände e Anzahl Mappe und Reduce
Abbildung 6.2:
Daue de Be echnungen bei Ve ände ung de Anzahl Mappe und
Reduce
Va ian en
educe 8+11
und
educe 16+22
mi eine E höhung de e wende en Reduce
ge es e . In de d i en Reducephase we den 8 bzw. 16 Reduce e wende und in de
ie en Reducephase we den 11 bzw. 22 Reduce benu z . Wie in den E gebnisda en in
Tabelle A.31 und Tabelle A.30 sowie in Abbildung 6.1 zu sehen is , ha die E höhung de
Reduce zahl zu eine deu lichen Ve inge ung de Zei ge üh .
Auße dem wu de im Job uning Expe imen mi eine Ve ände ung de Mappe zahl
ge es e . Im S anda d all be äg die maximale Da enmenge, die p o Mappe e a bei e
wi d 128MB. Diese wu de in de Va ian e
mappe 32MB
au 32MB e inge und ü
mappe 256MB
au 256MB e g öße . Wie in Abbildung 6.1 zu sehen is , wi ken sich
diese Ve ände ungen nega i au die e ziel en Bea bei ungszei en aus. Auch dieses
E gebnis is nach ollziehba , da die Bea bei ungszei en de Mappe im S anda d all
höchs ens 62 Sekunden be agen (siehe Tabelle A.3).
Be ach e man die Reduce , so bie e sich ein ande es Bild. Die Logda en des S an-
da d alls zeigen du chschni liche Bea bei ungszei en on 348 und 95 Sekunden ü
80
6.2 Ve gleich zu Da enbank Managemen Sys emen (DBMS)
die 3. bzw. die 4. Reducephase. Das Expe imen ha gezeig , dass eine E höhung de
Pa alleli ä bei den be o enen Reduce n eine e izien e e Aus üh ung e möglich .
Die o ges ell en Möglichkei en zum Tuning on Jobs soll en in de P axis angewen-
de we den, da sie zu eine Ve inge ung de Aus üh ungszei en und somi zu eine
Kos ensenkung üh en können. Dabei soll en insbesonde e die E gebnisda en on
abgeschlossenen Ab agen un e such we den.
6.2 Ve gleich zu Da enbank Managemen Sys emen (DBMS)
In Kapi el 5 wu de au gezeig , dass MapReduce eine gu e E izienz e zielen kann. T o z-
dem muss be ücksich ig we den, dass MapReduce in ielen Fällen nich die schnells en
Aus üh ungszei en e eich . In einem Expe imen konn en pa allele DBMS bei Da en-
analysen mi bis zu 100 Kno en deu liche Leis ungs o eile gegenübe MapReduce
e zeichnen [
40
]. Dabei wu den abe lediglich einzelne SQL S a emen s umgese z und
ge es e . Bei einem Tes mi komplexe en Ab agen können sich die E gebnisse ande s
da s ellen [
42
]. Gegenübe DBMS ha MapReduce auße dem einen eindeu igen Kos en-
o eil, denn es s ell keine hohen An o de ungen an die Ha dwa e, die einzelnen Nodes
können he e ogen sein. Die Ins alla ion eines Hadoop Clus e s is zudem unkomplizie
[
42
]. Die Kos en o eile e s ä ken sich, je g öße die zu un e suchende Da enmenge
is .
In den le z en Jah en wu den einige Da enbanksys eme ü Ech zei analyse (auch In-
Memo y Da enbanken genann ) en wickel , wie z.B.
Apache Spa k
,
Apache Tez
ode
SAP HANA
[
20
,
43
,
44
]. Das Konzep bes eh hie bei, möglichs iele Da en im Haup -
speiche zu hal en und möglichs wenige Lese-/Sch eibope a ionen au klassischen
HDDs du chzu üh en, da diese nu einen unzu eichenden Da endu chsa z bie en. Da-
mi können die In-Memo y Da enbanken schnelle a bei en als MapReduce. Wegen
de hohen An o de ungen an den Haup speiche sind sie jedoch nich ü so g oße
Da enmengen geeigne wie MapReduce. Deswegen sind die beiden Sys eme wenige
als Konku enz zu be ach en, sonde n ehe als E gänzung. So nu z beispielsweise
81
6 Diskussion
SAP HANA eine Schni s elle zu Hadoop um do mi MapReduce g oße Da enmengen
o zuso ie en. Dami können sie anschließend in HANA analysie we den.
Apache Tez is ein F amewo k, das inne halb on Apache Hadoop au YARN ausge üh
we den kann. In e essan an Tez is , dass es Pig-Sk ip e in e p e ie en kann. Dami
könn en Pig-Sk ip e zu Un e suchung on kleine en Da enmengen mi Tez angewand
we den und ab eine bes imm en Da eng öße mi MapReduce umgese z we den.
82
7
Zusammen assung
Die E s ellung on P ozessmodellen is ü die Ve besse ung on Geschä sp ozessen
in Un e nehmen on Vo eil. Ziel diese A bei wa es, ein F amewo k au de Basis
on P ocess Mining und MapReduce zu en wickeln, mi dessen Hil e e schiedene
P ozesspe spek i en, wie beispielsweise die O ganisa ionss uk u , aus o handenen
Logda en e mi el we den können. Zu diesem Zweck wu de ein heu is ische Mining-
Algo i hmus au Basis de Sk ip sp ache Apache Pig o ges ell , de e izien es P ocess
Mining au einem MapReduce-basie en Clus e e möglich .
Mi de Vo s ellung de p o o ypischen Implemen ie ung
P oDoop
konn e in diese A bei
gezeig we den, wie P ocess Mining au Basis on MapReduce implemen ie we den
kann. P oDoop nu z hie bei Schni s ellen eines Hadoop Clus e s, um Da en hochzula-
den und Ab agen da au auszu üh en. Nach Eingabe on Logda en is P oDoop in de
Lage P ozessmodelle zu be echnen und im B owse g a isch ansp echend da zus ellen.
83
A Anhang
22 // die Map-Funk ion bekomm als Pa ame e
23 //einen Tex als alue uebe geben
24 public oid map(Objec key,Tex alue,Con ex con ex
25 ) h ows IOExcep ion,In e up edExcep ion {
26 S ingTokenize i =new S ingTokenize ( alue. oS ing());
27 // de Tex wi d au ge eil in einzelne Woe e
28 while (i .hasMo eTokens()) {
29 wo d.se (i .nex Token());
30 con ex .w i e(wo d,one);
31 //Ausgabe ue jedes Wo : jeweiliges Wo als key
32 //und one bzw. 1 als alue
33 }
34 }
35 }
36
37 public s a ic class In SumReduce
38 ex ends Reduce <Tex ,In W i able,Tex ,In W i able> {
39 p i a e In W i able esul =new In W i able();
40
41 //die Reduce-Funk ion bekomm ein Wo als key und eine Lis e on
42 //Zahlen (z.B.: 1,1,1) als alues uebe geben
43 public oid educe(Tex key,I e able<In W i able> alues,
44 Con ex con ex
45 ) h ows IOExcep ion,In e up edExcep ion {
46 in sum = 0;
47 o (In W i able al : alues) {
48 sum += al.ge ();//die einzelnen Zahlen we den addie
49 }
50 esul .se (sum);
51 con ex .w i e(key, esul );// Ausgabe: ein Wo als key und eine
52 //Zahl als alue bzw. esul
53 }
54 }
55
56 public s a ic oid main(S ing[] a gs) h ows Excep ion {
57 Con igu a ion con =new Con igu a ion();
58 Job job =Job.ge Ins ance(con ,"wo d coun ");
59 job.se Ja ByClass(Wo dCoun .class);
60 job.se Mappe Class(Tokenize Mappe .class);
61 job.se Combine Class(In SumReduce .class);
62 //hie wi d ein Combine e wende
63 job.se Reduce Class(In SumReduce .class);
64 job.se Ou pu KeyClass(Tex .class);
65 job.se Ou pu ValueClass(In W i able.class);
66 FileInpu Fo ma .addInpu Pa h(job,new Pa h(a gs[0]));
67 FileOu pu Fo ma .se Ou pu Pa h(job,new Pa h(a gs[1]));
68 Sys em.exi (job.wai Fo Comple ion( ue)?0:1);
69 }
70 }
Lis ing A.1: Umse zung des Wo dcoun MapReduce Beispiels in Ja a
90

Tabelle A.1:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10 GB
und Clus e g öße 1+10
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
8561_
0037
159 11 57 13 40 86 78 82
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/290
job_
1447
8561_
0038
80 9 75 29 67 150 116 132
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
8561_
0039
160 18 74 15 42 675 445 544
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
8561_
0040
813 110 54 12 33 812 57 171 g,h,lim GROUP_BY
job_
1447
8561_
0041
4 1 51 36 43 19 19 19 C,D GROUP_BY,
COMBINER
s3://
ou pu
/291
job_
1447
8561_
0042
110 12 47 18 40 47 43 45 i,j GROUP_BY,
COMBINER
s3://
ou pu /
292
Pig sc ip comple ed in 37 minu es, 6 seconds and 415 milliseconds (2226415 ms)
Tabelle A.2:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10 GB
und Clus e g öße 1+8
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4806_
0025
159 11 54 12 38 121 82 110
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/149
job_
1442
4806_
0026
80 9 75 21 62 206 141 178
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4806_
0027
160 18 73 12 44 779 393 612
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4806_
0028
814 110 51 13 32 811 57 151 g,h,lim GROUP_BY
job_
1442
4806_
0029
4 1 42 33 37 20 20 20 C,D GROUP_BY,
COMBINER
s3://
ou pu
/150
job_
1442
4806_
0030
110 12 46 10 39 75 37 54 i,j GROUP_BY,
COMBINER
s3://
ou pu /
151
Pig sc ip comple ed in 42 minu es, 32 seconds and 346 milliseconds (2552346 ms)
91
A Anhang
Tabelle A.3:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1440
0202_
0001
16 2 17 14 16 5 5 5
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/82
job_
1440
0202_
0002
8 1 50 38 45 38 38 38
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1440
0202_
0003
16 2 62 24 47 350 347 348
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1440
0202_
0004
80 11 54 17 44 107 82 95 g,h,lim GROUP_BY
job_
1440
0202_
0005
1 1 25 25 25 7 7 7 C,D GROUP_BY,
COMBINER
s3://
ou pu
/83
job_
1440
0202_
0006
11 2 32 11 24 20 20 20 i,j GROUP_BY,
COMBINER
s3://
ou pu /
84
Pig sc ip comple ed in 11 minu es, 2 seconds and 994 milliseconds (662994 ms)
Tabelle A.4:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100 MB
und Clus e g öße 1+8
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4806_
0013
2 1 12 10 11 6 6 6
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/143
job_
1442
4806_
0014
1 1 17 17 17 9 9 9
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4806_
0015
2 1 20 19 20 68 68 68
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4806_
0016
8 2 21 15 18 27 27 27 g,h,lim GROUP_BY
job_
1442
4806_
0017
1 1 6 6 6 5 5 5 C,D GROUP_BY,
COMBINER
s3://
ou pu
/144
job_
1442
4806_
0018
1 1 11 11 11 6 6 6 i,j GROUP_BY,
COMBINER
s3://
ou pu /
145
Pig sc ip comple ed in 3 minu es, 51 seconds and 910 milliseconds (231910 ms)
92
Tabelle A.5:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10 MB
und Clus e g öße 1+8
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4806_
0007
1 1888666
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/140
job_
1442
4806_
0008
1 1999555
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4806_
0009
2 1 9 6 7 12 12 12
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4806_
0010
1 1 14 14 14 10 10 10 g,h,lim GROUP_BY
job_
1442
4806_
0011
1 1666555C,D GROUP_BY,
COMBINER
s3://
ou pu
/141
job_
1442
4806_
0012
1 1777666i,j GROUP_BY,
COMBINER
s3://
ou pu /
142
Pig sc ip comple ed in 2 minu es, 26 seconds and 509 milliseconds (146509 ms)
Tabelle A.6:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
und Clus e g öße 1+8
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4806_
0001
1 1888777
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/137
job_
1442
4806_
0002
1 1666444
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4806_
0003
2 1888777
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4806_
0004
1 1 6 6 6 5 5 5 g,h,lim GROUP_BY
job_
1442
4806_
0005
1 1666555C,D GROUP_BY,
COMBINER
s3://
ou pu
/138
job_
1442
4806_
0006
1 1666666i,j GROUP_BY,
COMBINER
s3://
ou pu /
139
Pig sc ip comple ed in 2 minu es, 18 seconds and 764 milliseconds (138764 ms)
93
A Anhang
Tabelle A.7:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100 KB
und Clus e g öße 1+8
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
8561_
0025
1 1 6 6 6 8 8 8
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/283
job_
1447
8561_
0026
1 1 4 4 4 4 4 4
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
8561_
0027
2 1 5 4 5 4 4 4
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
8561_
0028
1 1 5 5 5 4 4 4 g,h,lim GROUP_BY
job_
1447
8561_
0029
1 1 6 6 6 5 5 5 C,D GROUP_BY,
COMBINER
s3://
ou pu
/284
job_
1447
8561_
0030
1 1 6 6 6 5 5 5 i,j GROUP_BY,
COMBINER
s3://
ou pu /
139
Pig sc ip comple ed in 1 minu e, 56 seconds and 518 milliseconds (116518 ms)
Tabelle A.8:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10 GB
und Clus e g öße 1+6
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4099_
0049
159 11 55 12 35 179 22 135
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/128
job_
1442
4099_
0050
80 9 75 24 58 208 76 160
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4099_
0051
160 18 73 13 43 795 439 632
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4099_
0052
814 110 51 12 33 1110 56 156 g,h,lim GROUP_BY
job_
1442
4099_
0053
3 1 46 41 44 12 12 12 C,D GROUP_BY,
COMBINER
s3://
ou pu
/129
job_
1442
4099_
0054
110 12 47 11 34 103 12 75 i,j GROUP_BY,
COMBINER
s3://
ou pu /
130
Pig sc ip comple ed in 58 minu es, 57 seconds and 763 milliseconds (3537763 ms)
94
Tabelle A.9:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+6
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4099_
0043
16 2 24 15 20 8 7 8
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/125
job_
1442
4099_
0044
8 1 70 51 58 52 52 52
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4099_
0045
16 2 75 51 65 337 332 334
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4099_
0046
80 11 54 14 39 135 71 110 g,h,lim GROUP_BY
job_
1442
4099_
0047
1 1 25 25 254 11 11 11 C,D GROUP_BY,
COMBINER
s3://
ou pu
/126
job_
1442
4099_
0048
11 2 28 19 25 9 8 8 i,j GROUP_BY,
COMBINER
s3://
ou pu /
127
Pig sc ip comple ed in 11 minu es, 37 seconds and 309 milliseconds (697309 ms)
Tabelle A.10:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
MB und Clus e g öße 1+6
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4099_
0025
2 1 13 10 12 6 6 6
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/116
job_
1442
4099_
0026
1 1 17 17 17 12 12 12
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4099_
0027
2 1 17 16 17 71 71 71
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4099_
0028
8 2 43 16 31 48 48 48 g,h,lim GROUP_BY
job_
1442
4099_
0029
1 1666666C,D GROUP_BY,
COMBINER
s3://
ou pu
/117
job_
1442
4099_
0030
1 1 11 11 11 5 5 5 i,j GROUP_BY,
COMBINER
s3://
ou pu /
118
Pig sc ip comple ed in 4 minu es, 16 seconds and 315 milliseconds (256315 ms)
95

A Anhang
Tabelle A.11:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10 MB
und Clus e g öße 1+6
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
4099_
0019)
1 1 8 8 8 5 5 5
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/113
job_
1442
4099_
0020
1 1 7 7 7 5 5 5
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
4099_
0021
2 1 7 7 7 12 12 12
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
4099_
0022
1 1 15 15 15 10 10 10 g,h,lim GROUP_BY
job_
1442
4099_
0023
1 1 8 8 8 6 6 6 C,D GROUP_BY,
COMBINER
s3://
ou pu
/114
job_
1442
4099_
0024
1 1 7 7 7 5 5 5 i,j GROUP_BY,
COMBINER
s3://
ou pu /
115
Pig sc ip comple ed in 2 minu es, 26 seconds and 269 milliseconds (146269 ms)
Tabelle A.12:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
und Clus e g öße 1+6
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
8561_
0019)
1 1 7 7 7 5 5 5
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/280
job_
1447
8561_
0020
1 1 5 5 5 4 4 4
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
8561_
0021
2 1 5 5 5 6 6 6
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
8561_
0022
1 1 6 6 6 5 5 5 g,h,lim GROUP_BY
job_
1447
8561_
0023
1 1 6 6 6 5 5 5 C,D GROUP_BY,
COMBINER
s3://
ou pu
/281
job_
1447
8561_
0024
1 1 6 6 6 5 5 5 i,j GROUP_BY,
COMBINER
s3://
ou pu /
282
Pig sc ip comple ed in 1 minu e, 56 seconds and 606 milliseconds (116606 ms)
96
Tabelle A.13:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
KB und Clus e g öße 1+6
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
8561_
0013)
1 1777555
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/277
job_
1447
8561_
0014
1 1666555
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
8561_
0015
2 1656666
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
8561_
0016
1 1 5 5 5 4 4 4 g,h,lim GROUP_BY
job_
1447
8561_
0017
1 1666555C,D GROUP_BY,
COMBINER
s3://
ou pu
/278
job_
1447
8561_
0018
1 1666555i,j GROUP_BY,
COMBINER
s3://
ou pu /
279
Pig sc ip comple ed in 1 minu e, 57 seconds and 536 milliseconds (117536 ms)
Tabelle A.14:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10 GB
und Clus e g öße 1+4
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
7696_
0036
159 11 55 18 34 266 6 119
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/268
job_
1447
7696_
0037
80 9 79 21 50 328 72 156
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
7696_
0038
160 18 76 13 46 898 423 592
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
7696_
0039
813 110 53 13 29 1552 55 140 g,h,lim GROUP_BY
job_
1447
7696_
0040
3 1 33 29 31 6 6 6 C,D GROUP_BY,
COMBINER
s3://
ou pu
/269
job_
1447
7696_
0041
110 12 48 11 33 168 5 75 i,j GROUP_BY,
COMBINER
s3://
ou pu /
270
Pig sc ip comple ed in 1 hou , 22 minu es, 5 seconds and 851 milliseconds (4925851 ms)
97
A Anhang
Tabelle A.15:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+4
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
7696_
0025
16 2 29 26 27 7 6 6
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/262
job_
1447
7696_
0026
8 1 73 56 62 43 43 43
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
7696_
0027
16 2 74 49 66 400 394 397
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
7696_
0028
82 11 57 14 34 187 58 119 g,h,lim GROUP_BY
job_
1447
7696_
0029
1 1 18 18 18 6 6 6 C,D GROUP_BY,
COMBINER
s3://
ou pu
/263
job_
1447
7696_
0030
11 2 47 25 39 19 19 19 i,j GROUP_BY,
COMBINER
s3://
ou pu /
264
Pig sc ip comple ed in 14 minu es, 2 seconds and 736 milliseconds (842736 ms)
Tabelle A.16:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
MB und Clus e g öße 1+4
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
7696_
0019
2 1 12 10 11 5 5 5
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/259
job_
1447
7696_
0020
1 1 17 17 17 8 8 8
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
7696_
0021
2 1 21 20 21 68 68 68
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
7696_
0022
8 2 50 23 39 48 48 48 g,h,lim GROUP_BY
job_
1447
7696_
0023
1 1 25 25 25 6 6 6 C,D GROUP_BY,
COMBINER
s3://
ou pu
/260
job_
1447
7696_
0024
1 1 11 11 11 5 5 5 i,j GROUP_BY,
COMBINER
s3://
ou pu /
261
Pig sc ip comple ed in 4 minu es, 21 seconds and 8 milliseconds (261008 ms)
98
Tabelle A.17:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10 MB
und Clus e g öße 1+4
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
7696_
0013
1 1888555
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/256
job_
1447
7696_
0014
1 1666777
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
7696_
0015
2 1 7 6 6 14 14 14
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
7696_
0016
1 1 15 15 15 10 10 10 g,h,lim GROUP_BY
job_
1447
7696_
0017
1 1666666C,D GROUP_BY,
COMBINER
s3://
ou pu
/257
job_
1447
7696_
0018
1 1777555i,j GROUP_BY,
COMBINER
s3://
ou pu /
258
Pig sc ip comple ed in 2 minu es, 26 seconds and 311 milliseconds (146311 ms)
Tabelle A.18:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
und Clus e g öße 1+4
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
7696_
0007
1 1777555
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/253
job_
1447
7696_
0008
1 1555555
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
7696_
0009
2 1777666
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
7696_
0010
1 1 7 7 7 5 5 5 g,h,lim GROUP_BY
job_
1447
7696_
0011
1 1777555C,D GROUP_BY,
COMBINER
s3://
ou pu
/254
job_
1447
7696_
0012
1 1666555i,j GROUP_BY,
COMBINER
s3://
ou pu /
255
Pig sc ip comple ed in 2 minu es, 6 seconds and 137 milliseconds (126137 ms)
99
A Anhang
Tabelle A.31:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8; Reduce zahl 16+22
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
9455_
0019
16 2 17 14 16 6 5 6
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/161
job_
1442
9455_
0020
8 1 66 51 62 58 58 58
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
9455_
0021
16 16 74 49 64 86 48 76
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
9455_
0022
80 22 57 21 43 81 37 57 g,h,lim GROUP_BY
job_
1442
9455_
0023
1 1 19 19 19 5 5 5 C,D GROUP_BY,
COMBINER
s3://
ou pu
/162
job_
1442
9455_
0024
11 2 36 15 30 20 20 20 i,j GROUP_BY,
COMBINER
s3://
ou pu /
163
Pig sc ip comple ed in 6 minu es, 31 seconds and 849 milliseconds (391849 ms)
Tabelle A.32:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8; 1 Mappe p o 32 MB
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1442
9455_
0001
16 2 17 15 16 5 5 5
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/152
job_
1442
9455_
0002
32 1 38 27 34 56 56 56
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1442
9455_
0003
64 2 39 14 34 423 412 417
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1442
9455_
0004
320 11 33 7 23 256 177 224 g,h,lim GROUP_BY
job_
1442
9455_
0005
2 1 24 19 22 13 13 13 C,D GROUP_BY,
COMBINER
s3://
ou pu
/153
job_
1442
9455_
0006
33 2 37 15 31 21 21 21 i,j GROUP_BY,
COMBINER
s3://
ou pu /
154
Pig sc ip comple ed in 14 minu es, 55 seconds and 473 milliseconds (895473 ms)
106

Tabelle A.33:
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8; 1 Mappe p o 256 MB
JobID Maps Reds
Max
Map
Time
Min
Map
Time
A g
Map
Time
Max
Red
Time
Min
Red
Time
A g
Red
Time
Alias Fea u e Ou pu
job_
1447
8561_
0031
4 2 27 26 27 5 5 5
a,b,
callcen e ,
s a 3,
s a 4
MULTI
_QUERY,
COMBINER
s3://
ou pu
/286
job_
1447
8561_
0032
4 1 81 39 60 75 75 75
B,
bWi h-
Epoch,
jn,lim
GROUP_BY
job_
1447
8561_
0033
8 2 83 31 55 364 357 360
bWi h-
Epoch,
bWi h-
Epoch2,
d,e,
HASH_JOIN
job_
1447
8561_
0034
40 11 92 29 66 105 65 91 g,h,lim GROUP_BY
job_
1447
8561_
0035
1 1 16 16 16 8 8 8 C,D GROUP_BY,
COMBINER
s3://
ou pu
/287
job_
1447
8561_
0036
11 2 22 11 18 9 9 9 i,j GROUP_BY,
COMBINER
s3://
ou pu /
288
Pig sc ip comple ed in 11 minu es, 12 seconds and 803 milliseconds (672803 ms)
107
Abbildungs e zeichnis
1.1 G undlegende Funk ionsweise on P ocess Mining . . . . . . . . . . . . . 2
2.1 BPMLi ecycle.................................. 4
2.2 BPMN 2.0: Die wich igs en Elemen e . . . . . . . . . . . . . . . . . . . . . 5
2.3 Beispiel eines BPMN 2.0 P ozessmodells . . . . . . . . . . . . . . . . . . 7
2.4 Beispiel eine P ozessins anz . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 E mi el es P ozessmodell aus Tabelle 2.1 (angelehn an [8]) . . . . . . . 9
2.6 Aus e en logs e mi el e soziale Abhängigkei en . . . . . . . . . . . . . . 11
2.7 Beispiel eines C*-Ne zes zu Da s ellung eines P ozessmodells . . . . . . 12
2.8 E gebnisg a ik des Heu is ic Mine Beispiels mi Th eshold 4 und 0.6 . . . 15
2.9 E gebnisg a ik des Heu is ic Mine Beispiels mi Th eshold 6 und 0.7 . . . 16
2.10 Hando e o Wo k C*-Ne z . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.11 Schema ische Aus üh ung on MapReduce (angelehn an [14]) . . . . . . 19
2.12 MapReduce: Ablau ohne Reduce . . . . . . . . . . . . . . . . . . . . . . 20
2.13 MapReduce Phasen anhand eines Wo dCoun Beispiels . . . . . . . . . . 22
3.1 Hadoop So wa ea chi ek u [22] . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Beispiel ü ein YARN Clus e . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 YARN So wa e-A chi ek u mi Resou ceManage und NodeManage [5] 26
3.4 Beispiel ü ein HDFS Clus e . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Ablau eines Sch eib o gangs ins HDFS . . . . . . . . . . . . . . . . . . . 30
3.6 Da en ypen in Pig La in . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.7 Beispiel ü einen MapReduce Plan . . . . . . . . . . . . . . . . . . . . . . 43
109
Abbildungs e zeichnis
4.1 So wa ea chi eku on P oDoop . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 Au bau eines Tomca Webse e s . . . . . . . . . . . . . . . . . . . . . . 47
4.3 Ablau plan des Heu is ic Mine s in Pig . . . . . . . . . . . . . . . . . . . . 52
4.4 Anwendung des MVC Pa e ns mi Ja aEE . . . . . . . . . . . . . . . . . 53
4.5 Auswahl eine Da ei in P oDoop . . . . . . . . . . . . . . . . . . . . . . . 54
4.6 Zuo dnung de einzelnen Fields in P oDoop . . . . . . . . . . . . . . . . . 56
4.7 Hadoop Analyse unk ion auswählen in P oDoop . . . . . . . . . . . . . . 58
4.8 Beispiel ü einen Doughnu Cha in P oDoop . . . . . . . . . . . . . . . . 61
4.9 Beispiel ü einen Rada Cha in P oDoop . . . . . . . . . . . . . . . . . . 61
4.10 Beispiel ü einen Ba Cha in P oDoop . . . . . . . . . . . . . . . . . . . 62
4.11 Das E gebnis des Heu is ic Mine s mi Cy oscape.js . . . . . . . . . . . . 64
4.12 Das E gebnis de Social Ne wo k Analysis mi Cy oscape.js . . . . . . . . 65
5.1 Au bau eines Hadoop Clus e s in EMR . . . . . . . . . . . . . . . . . . . . 69
5.2 Zusammenspiel de e schiedenen AWS Se ices in EMR . . . . . . . . . 70
5.3 Au eilung des Pig Sk ip s in Jobs . . . . . . . . . . . . . . . . . . . . . . . 72
5.4 E gebnisse des Expe imen s . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.5 Geschwindigkei de Be echnungen in Abhängigkei de Clus e g öße . . 75
6.1 Geschwindigkei on e schiedenen MapReduce F amewo ks . . . . . . . 78
6.2 Daue de Be echnungen bei Ve ände ung de Mappe und Reduce . . . 80
110
Tabellen e zeichnis
2.1 Beispiel ü ein E en Log (angelehn an [8]) . . . . . . . . . . . . . . . . . 10
2.2 |a >Lb|Tabelle des Heu is ic Mine s . . . . . . . . . . . . . . . . . . . . . 13
2.3 |a⇒Lb|Tabelle des Heu is ic Mine s . . . . . . . . . . . . . . . . . . . . 14
2.4 Hando e o Wo k Ma ix . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
A.1
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
GB und Clus e g öße 1+10 . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A.2
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
GBundClus e g öße1+8........................... 91
A.3
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
undClus e g öße1+8 ............................. 92
A.4
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
MBundClus e g öße1+8........................... 92
A.5
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
MBundClus e g öße1+8........................... 93
A.6
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
undClus e g öße1+8 ............................. 93
A.7
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
KBundClus e g öße1+8 ........................... 94
A.8
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
GBundClus e g öße1+6........................... 94
A.9
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
undClus e g öße1+6 ............................. 95
111

Tabellen e zeichnis
A.10
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
MBundClus e g öße1+6........................... 95
A.11
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
MBundClus e g öße1+6........................... 96
A.12
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
undClus e g öße1+6 ............................. 96
A.13
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
KBundClus e g öße1+6 ........................... 97
A.14
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
GBundClus e g öße1+4........................... 97
A.15
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
undClus e g öße1+4 ............................. 98
A.16
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
MBundClus e g öße1+4........................... 98
A.17
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
MBundClus e g öße1+4........................... 99
A.18
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
undClus e g öße1+4 ............................. 99
A.19
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
KB und Clus e g öße 1+4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
A.20
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
undClus e g öße1+2 .............................100
A.21
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
MB und Clus e g öße 1+2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
A.22
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
MB und Clus e g öße 1+2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
A.23
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
undClus e g öße1+2 .............................102
A.24
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
KB und Clus e g öße 1+2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
112
Tabellen e zeichnis
A.25
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
undClus e g öße1+1 .............................103
A.26
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
MB und Clus e g öße 1+1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.27
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 10
MB und Clus e g öße 1+1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
A.28
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 MB
undClus e g öße1+1 .............................104
A.29
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 100
KB und Clus e g öße 1+1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
A.30
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8; Reduce zahl 8+11 . . . . . . . . . . . . . . . . . . 105
A.31
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8; Reduce zahl 16+22 . . . . . . . . . . . . . . . . . 106
A.32
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8; 1 Mappe p o 32 MB . . . . . . . . . . . . . . . . . 106
A.33
Aus üh ungs-Logda en des Heu is ic Mine s mi Eingabeda eig öße 1 GB
und Clus e g öße 1+8; 1 Mappe p o 256 MB . . . . . . . . . . . . . . . . 107
113
Lis ings
2.1 Map und Reduce Funk ion in Pseudo Code . . . . . . . . . . . . . . . . . 20
3.1 Umse zung des Wo dcoun Beispiels in Hi e . . . . . . . . . . . . . . . . 31
3.2 Umse zung des Wo dcoun Beispiels in Pig . . . . . . . . . . . . . . . . . 33
3.3 Beispiel ü die Funk ionsweise on Pig . . . . . . . . . . . . . . . . . . . 34
3.4 Beispiel ü ein LOAD, STORE und DUMP-Anweisungen . . . . . . . . . . 35
3.5 Beispiel ü FOREACH............................. 36
3.6 Beispiel ü Re e enz au Fields . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7 Beispiel ü FILTER............................... 37
3.8 Beispiel ü GROUP .............................. 37
3.9 Beispiel ü ORDERBY ............................ 38
3.10 Beispiel ü DISTINCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.11Beispiel ü JOIN................................ 38
3.12 Beispiel ü JOIN mi meh e en keys . . . . . . . . . . . . . . . . . . . . . 39
3.13Beispiel ü FLATTEN ............................. 39
3.14 Beispiel ü NESTED FOREACH . . . . . . . . . . . . . . . . . . . . . . . 40
3.15 Beispiel ü esul ie ende Da en ypen bei Ve wendung on UNION . . . . 41
3.16 Beispiel ü die Ve wendung de piggybank.ja . . . . . . . . . . . . . . . . 41
3.17 Beispiel ü den Ja a Code eine UDF . . . . . . . . . . . . . . . . . . . . 42
4.1 Umse zung des Heu is ic Mine s in Pig: Teil 1 . . . . . . . . . . . . . . . . 48
4.2 Umse zung des Heu is ic Mine s in Pig: Teil 2 . . . . . . . . . . . . . . . . 49
4.3 Umse zung des Heu is ic Mine s in Pig: Teil 3 . . . . . . . . . . . . . . . . 50
115