Big Data Schaalbaar rekenen Big Data Niels Basjes Niels@Basjes.nl @nielsbasjes http://github.com/nielsbasjes TU-Delft Informatica Nyenrode Bedrijfskunde Zoek Suggesties Software ontwikkelaar Onderzoeker (NLR) Infra Architect (NLR) Webanalytics Architect IT Architect Sinds 2008 bij Bol.com Zoek Suggesties Architectuur schets Basis idee: Volledig automatisch Klanten helpen klanten Processing principe Elke historische zoek actie is een potentiële suggestie. Sorteren op relevantie. Bied de 10 meest relevante als suggestie. Razendsnel Wat is relevant? De zoekactie en het resultaat Het gedrag na de zoekactie. Grote batch Clickstream 1
Zoek suggesties (versie 1) Zoek suggesties (versie 1) Eerste versie: Alleen zoekacties tellen Kwantitatief filteren Beperkte feedback Schaal 1 week data 1 systeem om het te berekenen 1 zoek actie op de term Hadoop H Hadoop : 1 Ha Hadoop : 1 Had Hadoop : 1 Hado Hadoop : 1 Hadoo Hadoop : 1 Hadoop Hadoop : 1 Zoek suggesties (versie 1) Zoek suggesties (versie 1) 2 Zoek acties op de term Harry Potter H Harry Potter : 2 Ha Harry Potter : 2 Har Harry Potter : 2 Harr Harry Potter : 2 Harry Harry Potter : 2 Harry Harry Potter : 2 Harry P Harry Potter : 2 Combineer die twee H { Harry Potter, Hadoop } Ha { Harry Potter, Hadoop } Har { Harry Potter } Had { Hadoop } Harr { Harry Potter } Hado { Hadoop } Functioneel effect nijntje dekbedovertrek Bezoekers vinden dat een heel interessante suggestie! Alleen hebben we dat niet 2
Zoek suggesties (versie 2) De zoek funnel Zoeken Gebruik meer data en analyseer het gedrag Vinden Kiezen Kopen 14 Dieper = relevanter Kwalitatief filteren (Zoeken) Vinden Kiezen Kopen 15 Recenter = relevanter 1 jaar klik historie Gisteren Eergisteren Vorige week Vorige maand 3
En dat is best veel data Dit wordt te groot! (1/2) Gemiddeld 3.5 GiB Gzip logfiles per dag 3.5GiB Gzip 35GiB text Eerste doel: 12 weken historie (84 dagen) Dus zo n 300GiB ( 3TiB text) aan input mee laten wegen Nu: 1 jaar historie Uiteindelijk: Alles wat we hebben liggen Dit wordt te groot! (2/2) Recommendations Steeds dieper kijken Redeneren over alle acties van een bezoeker Verbanden vinden in veel grotere dataset Op basis van die verbanden betere relevanties bepalen Inschatting aan het begin van het project: Dit gaat meer rekentijd kosten dan we hebben Recommendations Wisdom of the crowd. Welke andere producten zijn relevant bij dit product? De klanten stemmen met hun digitale voeten 4
Het gedrag van een klant Het gedrag van een klant Bekijkt/Koopt een aantal verschillende producten Die producten hebben dus een relatie Het gedrag van een klant Wat doen veel klanten Klant 1 Klant 2 Klant 3 Trigger Aanbeveling Tuple Elk product beveelt elk ander product aan Wat doen veel klanten Klant 1 Klant 2 Klant 3 Wat doen veel klanten Klant 1 Klant 2 Klant 3 5
Heel veel anonieme tuples De waarde van een tuple? Hoeveel bekeken? Hoeveel verkocht? Allemaal een score geven Groeperen Allemaal de score 1 Aggregeren Ruis filteren Te weinig bezoekers deden dit. 6
Group By trigger, sorteer op score Veel te groot! Totaal aantal tuples: 12.800.000.000 = 12.8 miljard Veel te groot! Totale rekentijd welke we elke week verstoken: 400 uur = 16 dagen (exclusief overhead) Het past niet meer Te groot voor 1 computer! 7
Algemene voorspelling Data volume en de wensen om daar iets mee te doen groeien sneller dan de kracht van de computers. Steeds meer data BigData Business Value Verschillende soorten bron gegevens Steeds sneller operationeel toepassen Continue veranderingen in de data bronnen Schaalbaarheid Voorbeeld case Het oogsten van gewassen Elk begin is klein Automatiseren 8
2013-08-26 Opschalen naar groter En nog groter En nog groter Tot de grootste Twee soorten schaalbaar (1/2) Twee soorten schaalbaar (2/2) Verticaal: Steeds groter Voor: Zolang het kan: Makkelijk. Korte time-to-market Tegen: Wordt snel duur Big bang aankoop Groter dan de grootste kan niet. Horizontaal: Steeds meer naast elkaar Voor: Veel meer doorgroei potentie. Incrementeel groter maken Kosten effectief Tegen: Het proces moet ervoor ontworpen worden. Kan ALLEEN als het werk in onafhankelijke delen gesplitst kan worden. 9
Meer Nog meer Economische maat Verschillende modellen Heel veel meer Begin bij het proces ontwerp Voldoende brokken werk. Anders is het zo lastig verdelen De brokken zijn onafhankelijk. Anders vervalt de schaalbaarheid Google: soybean harvest Meer performance Meer systemen Logistiek Veelbakjeswordenparallel gevulden onafhankelijkvan elkaar ingepakt. Verkeer 10
Supermarkten Website horizontaal schalen Onafhankelijke data? (1/3) Onafhankelijke data? (2/3) Met relaties in de data (RDBMS / SQL) Transacties over tabellen heen Strong consistenticy (ACID) Atomic, Consistent, Isolation, Durable Meestal alleen vertikaal schaalbaar. Zonder relaties in de data (Geen SQL) Geen transacties over tabellen heen Eventual consistency (BASE) Basically Available, Softstate, Eventually consistent Horizontaal schaalbaar is mogelijk Onafhankelijke data? (3/3) Data horizontaal schalen? NoSQL (Not ONLY SQL) Kies verstandig afhankelijk van de situatie Praktijk: Hybride landschap! Google paper uit 2004 MapReduce: Simplified Data Processing on Large Clusters 11
What did Google do? What did Google do? Groot aantal computers 1. Data distribueren 2. Processing naar de data sturen. En een processing model om dit herbruikbaar te maken. MapReduce What did Google do? What did Google do? Is dit betrouwbaar?!?! Data verspreiden (HDFS) Client Input 1 bestand 2 3 Server 1 Server 2 Server 3 Replicatie factor =2 12
Map Reduce Client JOB En toen deed het BOEM! Client JOB 1 3 1 2 2 3 1 3 1 2 2 3 Server 1 Server 2 Server 3 Server 1 Server 2 Server 3 Replicatie factor =2 Replicatie factor =2 MapReduce processing model MapReduce: basis idee > 30 jaar oud Alleen voor Batch verwerking Eenvoudig Horizontaal schaalbaar Kan in alle programmeer talen Map (Transformeren) 1 Input record omzetten en groepeerbaar maken. Input: Input regels Output: Aantal ( Key, Value ) paren Reduce (Groeperen en Aggregeren) Alles met dezelfde Key aggregeren Input: 1 Key met een aantal Values Output: De records die gewenst zijn. Woorden tellen Ketens van MR jobs Split Map Shuffle/ Sort Reduce Output Input 13
Hadoop MapReduce Hadoop Ecosysteem Java implementatie van MapReduce Een handige toolkit Kennis beschikbaar Boeken, Trainingen, Community. Support beschikbaar Hortonworks, Cloudera, MapR Grote spelers Yahoo, Linkedin, Twitter, Facebook, Amazon, Adobe, Van concept naar praktijk Klein beginnen Laat zien dat het schaalt Laat anderen het proberen 14
3 weken webdata in 25 minuten! In productie nemen Het productie cluster VM Master 5 Workers systemen 2 CPU x 4 Core 8 Disks * 450 GB 32GiB Ram Job Status: Succeeded Waar ligt de grens? Business impact Op eenpaarduizend servers! Toepassingen binnen bol.com Zoek suggesties (nu) Aanbevelingen Zoek Suggesties Producten Sorteren op relevantie Vinden van klant voorkeuren Persoonlijke inspiratie (Web)Statistiek Etc. Huidige versie: Gevolgen van zoek acties Categorie suggesties Kwalitatief filteren Spelling correcties Spelfouten herkennen Niet succesvolle termen verwijderen. Schaal 1 jaar data 5 systemen parallel aan het werk 15
Echt volledig automatisch! Zondag ochtend 12 feb 2012: Whitney Houston Maandag ochtend: Business effect Impliciet filteren tegen de product catalogus Slechte zoek resultaten worden niet mee genomen Betere dekking van de long tail De suggesties worden vaker gebruikt 3 jaar later Recommendations (nu) Voor de gehele catalogus 17M producten Meerdere soorten aanbevelingen Product Product Creator Creator Schaal >13 jaar order historie >2 jaar click stream Binnen 20 uur klaar (op 4 servers) Binnenkort meer servers Organisatie impact & tips Organisatie impact & tips IT: Mindset verschuiving Data doe je in Oracle Laat de pilot door flexibele senior mensen doen. Het is anders Training en uitproberen is noodzakelijk Geef de pioniers een stapeltje oud ijzer Standaard server grade hardware Zoek de balans kosten/systeem & aantal systemen Business: Veel nieuwe mogelijkheden Het maximale data volume is een (financiële) keuze. Business case is erg makkelijk De software is gratis De hardware is standaard of the shelf In kleine stappen opschalen 16
Belangrijkste BigData conclusie Big Data boeken Overzicht op www.basjes.nl Vragen? 17