MA(p) R(educe) BU(ilder)
Marbu enables you to add mapreduce code-generating functionality to your software within seconds.
What does it do?
Marbu contains three destinct parts
- The MapReduceFinalize-Model which acts as an Interface for the MapReduceBuilder
- The map-reduce core functionality: this creates map reduce code for different map reduce systems
- A Sinatra App which lets you instantly play around with the builder and shows you what you can do.
Installation
Install with 'gem install marbu'.
For bundler add "gem 'marbu'" to your Gemfile.
Stand alone usage
Marbu comes complete with a little Sinatra App to help you along. You start the app with 'marbu-web marbu-web-mongo-config.rb'. This will start Marbu with the provided MongoDB-Configuration file.
If everything is working, you can go to 'localhost:5678' (if you are already running something on 5678 then try 5679) and you should see all databases in your local MongoDB installation.
After selecting a Database you will see all collections within this database. You select a collection and go into the 'marbu' mode. In the 'marbu' mode you can build your map - reduce - finalize functionality. After that run your query and see what you get. Done!
Development
Clone the repo
$ git clone git@github.com:QEDio/qstate.git
Update submodules
$ git submodule init && git submodule update
Install dependencies
$ bundle install
Run the tests
$ rake
Running the built-in Sinatra server can be done using the method above or using a standard config.ru file just like any other Rack-based app. Just make sure to provide the config file path through the corresponding environment variable:
$ MARBUCONFIG=bin/marbu-web-mongo-config.rb rackup
You can also activate the debugger and pick a specific server if you want:
$ MARBUCONFIG=bin/marbu-web-mongo-config.rb thin --debug --rackup config.ru start