Skip to content

discoproject/odisco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ODisco is a library for implementing Disco map-reduce jobs in OCaml.
It implements the Disco worker protocol, and provides the plumbing to
connect user-specified computations to Disco data sources and results.

Prerequisites:
--------------

The library has the following dependencies:

. ocaml 3.12.0 or later

. ocaml-findlib (Debian/Ubuntu/Fedora) / godi-findlib (Godi) / findlib (Gentoo, source)

. libzip-ocaml-dev (Debian/Ubuntu) / ocaml-zip (Fedora) / godi-zip (Godi) / camlzip (Gentoo, source)

. Disco 0.4 or later (http://discoproject.org)

. sonet

  This is a simple asynchronous networking library for OCaml.

  $ git clone git://github.com/pmundkur/sonet.git
  $ cd sonet && make && make install

  To uninstall:
  $ cd sonet && make uninstall

The tests have the following dependencies:

. atd    (https://github.com/MyLifeLabs/atd) / libatd-ocaml-dev (Debian/Ubuntu) / godi-atd (Godi)
. atdgen (https://github.com/MyLifeLabs/atdgen) / libatdgen-ocaml-dev (Debian/Ubuntu) / godi-atdgen (Godi)
. biniou (https://github.com/mjambon/biniou) / libbiniou-ocaml-dev (Debian/Ubuntu) / godi-biniou (Godi)

Building:
---------

 $ make

Installing:
-----------

 $ make install

Uninstalling:
-------------

 $ make uninstall

Using:
------

. Write a module implementing the lib/task.ml:TASK interface.  Pass
  this module to Worker.start in your main program.  See
  tests/test_install_task.ml for an example.

  Read the documentation in lib/task.mli and lib/worker.mli for more
  details.

. Build it and link to the ODisco library.  See tests/Makefile for an
  example build.

. Submit your compiled executable to Disco using 'disco job'.

  For example, to do a word count on a large text file:

  $ make -C tests
  $ wget -O /tmp/bigfile.txt http://discoproject.org/media/text/bigfile.txt
  $ ddfs push text /tmp/bigfile.txt
  $ ddfs blobs text \
    | disco job -m -r -p ocamlwc tests/word_count.opt \
    | xargs disco wait \
    | xargs ddfs cat