Sha256: c23bf0ceb8808b15728a7cb35f90f4b56e02c106ddabc3fbb83d0a96f8f3cec1
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
require "rubygems" require "json" require "uri" require "cgi" %w( support/formatting task dsl job packer support/tuple support/array_serializer mappers/base_mapper mappers/transpose_mapper mappers/pass_through_mapper reducers/base_reducer reducers/pass_through_reducer reducers/sum_reducer reducers/max_reducer reducers/min_reducer reducers/transpose_reducer serializers/json stores/hbase stores/in_memory test_runner ruby-hbase ).each {|file| require File.join(File.dirname(__FILE__), file) } module Mandy class << self attr_accessor :local_input attr_accessor :autorun def stores @stores||={} end end def job(name, &blk) job = Mandy::Job.new(name) job.instance_eval(&blk) unless blk.nil? Mandy::Job.jobs << job job end module_function :job end Mandy.autorun = true at_exit do raise $! if $! caller = Kernel.caller.first next unless Mandy.autorun next if caller.nil? caller = caller.split(':').first next if caller =~ /bin\/(rake|mandy)/ input = Mandy.local_input || ENV['MANDY_INPUT'] unless input print "Input file: " input = gets.chomp end file = caller output_folder = FileUtils.mkdir_p("/tmp/mandy-local") out = nil Mandy::Job.jobs.each_with_index do |job, i| out = File.join(output_folder, "#{i+1}-#{job.name.downcase.gsub(/\W/, '-')}") puts "Running #{job.name}..." reduce_phase = job.reducer_defined? ? %(| sort | mandy-reduce #{file} "#{job.name}") : '' `cat #{input} | mandy-map #{file} "#{job.name}" #{reduce_phase} > #{out}` input = out end puts File.read(out) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mandy-0.4.4 | lib/mandy.rb |