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 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
@@ -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
- options = options[0] if options.size > 0
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
@@ -1,5 +1,5 @@
1
1
  module Azkaban
2
2
  module Rb
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
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: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
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-20 00:00:00 Z
18
+ date: 2011-08-22 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: httpclient