class Hasta::Runner

Runs a map/reduce job locally

Attributes

job_name[R]
mapper[R]
reducer[R]

Public Class Methods

new(job_name, mapper, reducer = nil) click to toggle source
# File lib/hasta/runner.rb, line 11
def initialize(job_name, mapper, reducer = nil)
  @job_name = job_name
  @mapper = mapper
  @reducer = reducer
end

Public Instance Methods

run(data_sources, data_sink, ruby_files = [], env = Hasta::Env.new) click to toggle source
# File lib/hasta/runner.rb, line 17
def run(data_sources, data_sink, ruby_files = [], env = Hasta::Env.new)
  Hasta.logger.debug "Starting Job: #{job_name}"

  context = ExecutionContext.new(ruby_files, env.setup)
  if reducer
    reducer.reduce(context, mapper.map(context, data_sources).data_source, data_sink)
  else
    mapper.map(context, data_sources, data_sink)
  end
end