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 +7 -4
- data/bin/mandy-map +8 -1
- data/bin/mandy-reduce +1 -1
- data/lib/mandy.rb +1 -0
- data/lib/packer.rb +20 -0
- metadata +2 -1
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 "#{
|
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
data/lib/mandy.rb
CHANGED
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:
|
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
|