scieee Open visual document viewer

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

Frey, Corvin

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.

Full text

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