azkaban-rb 0.0.5 → 0.0.6
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/example/Rakefile +14 -2
- data/lib/azkaban-rb/tasks.rb +21 -4
- data/lib/azkaban-rb/version.rb +1 -1
- metadata +4 -4
data/example/Rakefile
CHANGED
@@ -38,7 +38,7 @@ namespace @@job_namespace.to_sym do
|
|
38
38
|
reads "#{@@hdfs_root}/input.txt", :as => "input"
|
39
39
|
writes "#{@@hdfs_root}/input_grouped.txt", :as => "output"
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
pig_job :test2 => :test do
|
43
43
|
uses "src/test2.pig"
|
44
44
|
reads "#{@@hdfs_root}/input_grouped.txt", :as => "input"
|
@@ -70,4 +70,16 @@ task :deploy => :zip do
|
|
70
70
|
Azkaban.deploy(config['azkaban_uri'], @@azkaban_path, @@zip_name)
|
71
71
|
end
|
72
72
|
|
73
|
-
task :default => :zip
|
73
|
+
task :default => :zip
|
74
|
+
|
75
|
+
# Create a run task for each pig job so we can run using Rake. Parameter substituion is done automatically.
|
76
|
+
Rake.application.tasks.find_all do |task|
|
77
|
+
if task.job && task.job.instance_of?(Azkaban::PigJob)
|
78
|
+
desc "Run pig job #{task.name}"
|
79
|
+
task("run:#{task.name}".to_sym) do
|
80
|
+
script = task.job["pig.script"]
|
81
|
+
parameters = task.job.parameters.map { |k,v| "-param #{k}=#{v}"}.join(" ")
|
82
|
+
`bin/pig #{parameters} #{script}`
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/azkaban-rb/tasks.rb
CHANGED
@@ -79,6 +79,14 @@ module Azkaban
|
|
79
79
|
class << self
|
80
80
|
attr_accessor :output_dir
|
81
81
|
end
|
82
|
+
|
83
|
+
def [](k)
|
84
|
+
@args[k]
|
85
|
+
end
|
86
|
+
|
87
|
+
def []=(k,v)
|
88
|
+
@args[k] = v
|
89
|
+
end
|
82
90
|
|
83
91
|
def set(params)
|
84
92
|
params.each do |k,v|
|
@@ -115,10 +123,7 @@ module Azkaban
|
|
115
123
|
private
|
116
124
|
|
117
125
|
def handle_read_write_options(options, name)
|
118
|
-
|
119
|
-
if options && options.instance_of?(Hash) && options[:as]
|
120
|
-
set "param.#{options[:as]}" => name
|
121
|
-
end
|
126
|
+
# nothing to do
|
122
127
|
end
|
123
128
|
|
124
129
|
def create_properties_file(file_name, props)
|
@@ -140,14 +145,26 @@ module Azkaban
|
|
140
145
|
end
|
141
146
|
|
142
147
|
class PigJob < JobFile
|
148
|
+
attr_reader :parameters
|
149
|
+
|
143
150
|
def initialize(task, ext)
|
144
151
|
super(task,ext)
|
145
152
|
set "type"=>"pig"
|
153
|
+
@parameters = {}
|
146
154
|
end
|
147
155
|
|
148
156
|
def uses(name)
|
149
157
|
set "pig.script"=>name
|
150
158
|
end
|
159
|
+
|
160
|
+
def handle_read_write_options(options, name)
|
161
|
+
options = options[0] if options.size > 0
|
162
|
+
if options && options.instance_of?(Hash) && options[:as]
|
163
|
+
# set the pig parameter
|
164
|
+
set "param.#{options[:as]}" => name
|
165
|
+
@parameters[options[:as]] = name
|
166
|
+
end
|
167
|
+
end
|
151
168
|
end
|
152
169
|
|
153
170
|
class JavaJob < JobFile
|
data/lib/azkaban-rb/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: azkaban-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Hayes
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-22 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: httpclient
|