MapReduceJS: Een educatief map/reduce framework
This post was originally published on Coding Glamour.
Downloadlink: MapReduceJS, an educational MapReduce framework implemented in Javascript.
MapReduce is een door Google ontwikkeld framework waarmee bewerkingen
in twee stappen op grote sets data kunnen worden uitgevoerd. Elke bewerking
is compleet onafhankelijk van andere bewerkingen en ze kunnen daarom eenvoudig
worden verspreid over meerdere machines. Standaard voorbeeld hierin is
bijvoorbeeld het tellen van woorden in documenten:
- 1. Input: een lijst met documenten
- 2. Map-stap: je krijgt een document binnen, en split deze op spaties. Je retouneert een array met alle losse woorden
- 3. Reduce-stap: je krijgt binnen: het woord, en een array met alle keren dat deze voorkwam in álle documenten. Deze kan je tellen en teruggeven als output.
Maar...
Het testen van MapReduce kan je bijvoorbeeld in Hadoop of MongoDB heeft een aantal nadelen: je moet de software aan de praat krijgen en je data importeren. Vanwege het distributed idee achter MapReduce is het bovendien lastig om te debuggen. Daarom... MapReduceJS!
Een framework om je MapReduce algoritme te kunnen testen en te debuggen. Het draait gewoon in de browser en is debugbaar met bv. Firebug. Het kent geen afhankelijkheden en draait gewoon lokaal. De invoer kan elke source zijn die je kan downloaden met javascript. Dus bijvoorbeeld Twitter of RSS feeds.
Syntax
De syntax bestaat uit 1 functie:
Simpele functie
Demo om woorden te tellen:
Output:
Go play!
De word-count demo, en de benodigde javascript is te vinden op Google Code. Het is een framework om het principe achter mapreduce snel te kunnen demo'en, maar biedt geen van de voordelen die een echt MapReduce framework biedt. Daarvoor zal je toch echt Hadoop moeten pakken . Online testen kan uiteraard ook, en wel op JSBin.
There are 2 comments on this article, read them on Coding Glamour.