trafficbroker-mandy 0.2 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/bin/mandy-hadoop CHANGED
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
+ require "rubygems"
3
+ require "mandy"
2
4
 
3
5
  def absolute_path(path)
4
6
  path =~ /^\// ? path : File.join(Dir.pwd, path)
5
7
  end
6
8
 
7
9
  if ARGV.size==0
8
- puts "USAGE: mandy-hadoop my_script.rb input_file_or_folder_on_hdfs output_folder_on_hdfs cluster-config.xml"
10
+ puts "USAGE: mandy-hadoop my_script.rb input_file_or_folder_on_hdfs output_folder_on_hdfs cluster-config.xml [payload]"
9
11
  exit
10
12
  end
11
13
 
@@ -14,6 +16,7 @@ filename = File.basename(file)
14
16
  input = ARGV[1]
15
17
  output_folder = ARGV[2]
16
18
  config = ARGV[3]
19
+ payload = ARGV[4] ? Mandy::Packer.pack(ARGV[4]) : ARGV[0]
17
20
 
18
21
  require absolute_path(file)
19
22
 
@@ -25,9 +28,9 @@ Mandy::Job.jobs.each_with_index do |job, i|
25
28
  command = %($HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-*-streaming.jar #{jobconf}\
26
29
  -conf '#{config}' \
27
30
  -input "#{input}" \
28
- -mapper "mandy-map #{filename} '#{job.name}'" \
29
- -reducer "mandy-reduce #{filename} '#{job.name}'" \
30
- -file "#{file}" \
31
+ -mapper "mandy-map #{filename} '#{job.name}' #{payload}" \
32
+ -reducer "mandy-reduce #{filename} '#{job.name}' #{payload}" \
33
+ -file "#{payload}" \
31
34
  -output "#{output}")
32
35
 
33
36
  `#{command}`
data/bin/mandy-map CHANGED
@@ -1,10 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
+ require "rubygems"
3
+ require "mandy"
2
4
 
3
5
  if ARGV.size==0
4
- puts "USAGE: mandy-map my_script.rb 'Job Name'"
6
+ puts "USAGE: mandy-map my_script.rb 'Job Name' [payload]"
5
7
  exit
6
8
  end
7
9
 
10
+ if ARGV.size > 3
11
+ payload = ARGV[3]
12
+ Mandy::Packer.unpack(payload)
13
+ end
14
+
8
15
  def absolute_path(path)
9
16
  path =~ /^\// ? path : File.join(Dir.pwd, path)
10
17
  end
data/bin/mandy-reduce CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  if ARGV.size==0
4
- puts "USAGE: mandy-reduce my_script.rb 'Job Name'"
4
+ puts "USAGE: mandy-reduce my_script.rb 'Job Name' [payload]"
5
5
  exit
6
6
  end
7
7
 
data/lib/mandy.rb CHANGED
@@ -2,6 +2,7 @@
2
2
  task
3
3
  dsl
4
4
  job
5
+ packer
5
6
  support/tuple
6
7
  support/array_serializer
7
8
  mappers/base_mapper
data/lib/packer.rb ADDED
@@ -0,0 +1,20 @@
1
+ require "fileutils"
2
+
3
+ module Mandy
4
+ class Packer
5
+ TMP_DIR = '/tmp/mandy'
6
+
7
+ def self.pack(dir)
8
+ return dir if File.file?(dir)
9
+ FileUtils.mkdir_p(TMP_DIR)
10
+ tmp_path = "#{TMP_DIR}/packed-job-#{Time.now.to_i}.tar"
11
+ `tar -cf #{tmp_path} #{dir}`
12
+ tmp_path
13
+ end
14
+
15
+ def self.unpack(file)
16
+ return false unless File.extname(payload) == '.tar'
17
+ `tar -xf --overwrite #{file}`
18
+ end
19
+ end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trafficbroker-mandy
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.2"
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Kent
@@ -46,6 +46,7 @@ files:
46
46
  - lib/job.rb
47
47
  - lib/mappers/base_mapper.rb
48
48
  - lib/mappers/pass_through_mapper.rb
49
+ - lib/packer.rb
49
50
  - lib/reducers/base_reducer.rb
50
51
  - lib/reducers/pass_through_reducer.rb
51
52
  - lib/reducers/sum_reducer.rb