mobilize-hive 1.25 → 1.26

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a728ff9978514fe5f0fcf230117bb601938eaba9
4
- data.tar.gz: 556d3e8c3e22de09e5f251cadf693d1bfd2122b0
3
+ metadata.gz: a107187c623de567063792546016ea6fd59f92d3
4
+ data.tar.gz: 8a1aeaca87cdaa2161666a743d66af278a94eabb
5
5
  SHA512:
6
- metadata.gz: 18ea8474ab5376cecee6fc1fe33b688b16eb88ab5da14cd09ef52892dbb1333a6991ff2581702f681b60915943a82e8572400a2adb59b11b96a47fa6e93353b3
7
- data.tar.gz: a0e1ecfcee8f0eb7296b71c2700d9ed2d09688d52252b306c8c03b21c82d8d3ba6b09a849c62a55e68518f29a14d9f3da9095a73db5f3a34a627894b7916f8f6
6
+ metadata.gz: ab2b0d4b7ad35f3c5d213f534dff88f4e5fac0c7e43dd152b3325695e46ba970ac0a9616031520091b854aaac5a4fb66df9baf6da503be618b5483682d0091c7
7
+ data.tar.gz: 8a8ad939b734d328062f7dcf2f0b3702486804c20c1d127c1fbedc5d012694dcff996712321cfb8b0e49fcc48cc924938074b19d74d242ecf6d5792ba4a5dc7b
@@ -52,7 +52,7 @@ module Mobilize
52
52
  end
53
53
 
54
54
  # converts a source path or target path to a dst in the context of handler and stage
55
- def Hive.path_to_dst(path,stage_path)
55
+ def Hive.path_to_dst(path,stage_path,gdrive_slot)
56
56
  has_handler = true if path.index("://")
57
57
  s = Stage.where(:path=>stage_path).first
58
58
  params = s.params
@@ -78,7 +78,7 @@ module Mobilize
78
78
  return Dataset.find_or_create_by_url(hive_url)
79
79
  end
80
80
  #otherwise, use hdfs convention
81
- return Ssh.path_to_dst(path,stage_path)
81
+ return Ssh.path_to_dst(path,stage_path,gdrive_slot)
82
82
  end
83
83
 
84
84
  def Hive.url_by_path(path,user_name,is_target=false)
@@ -163,6 +163,9 @@ module Mobilize
163
163
  end
164
164
 
165
165
  def Hive.run_by_stage_path(stage_path)
166
+ gdrive_slot = Gdrive.slot_worker_by_path(stage_path)
167
+ #return blank response if there are no slots available
168
+ return nil unless gdrive_slot
166
169
  s = Stage.where(:path=>stage_path).first
167
170
  params = s.params
168
171
  cluster = params['cluster'] || Hive.clusters.keys.first
@@ -181,10 +184,12 @@ module Mobilize
181
184
  if params['hql']
182
185
  hql = params['hql']
183
186
  else
184
- source = s.sources.first
185
- hql = source.read(user_name)
187
+ source = s.sources(gdrive_slot).first
188
+ hql = source.read(user_name,gdrive_slot)
186
189
  end
187
190
 
191
+ Gdrive.unslot_worker_by_path(stage_path)
192
+
188
193
  #check for select at end
189
194
  hql_array = hql.split(";").map{|hc| hc.strip}.reject{|hc| hc.length==0}
190
195
  if hql_array.last.downcase.starts_with?("select")
@@ -231,7 +236,7 @@ module Mobilize
231
236
  file_name = schema_path.split("/").last
232
237
  out_url = "gridfs://#{schema_path}/#{file_name}"
233
238
  Dataset.write_by_url(out_url,out_tsv,user_name)
234
- schema_tsv = Dataset.find_by_url(out_url).read(user_name)
239
+ schema_tsv = Dataset.find_by_url(out_url).read(user_name,gdrive_slot)
235
240
  schema_hash = {}
236
241
  schema_tsv.tsv_to_hash_array.each do |ha|
237
242
  schema_hash[ha['name']] = ha['datatype']
@@ -488,28 +493,26 @@ module Mobilize
488
493
  end
489
494
 
490
495
  def Hive.write_by_stage_path(stage_path)
496
+ gdrive_slot = Gdrive.slot_worker_by_path(stage_path)
497
+ #return blank response if there are no slots available
498
+ return nil unless gdrive_slot
491
499
  s = Stage.where(:path=>stage_path).first
492
500
  params = s.params
493
- source = s.sources.first
501
+ source = s.sources(gdrive_slot).first
494
502
  target = s.target
495
503
  cluster, db, table = target.url.split("://").last.split("/")
496
- #update stage with the node so we can use it
497
- user_name = Hdfs.user_name_by_stage_path(stage_path,cluster)
498
- job_name = s.path.sub("Runner_","")
499
-
500
504
  #slot Hive worker if available
501
505
  slot_id = Hive.slot_worker_by_cluster_and_path(cluster,stage_path)
502
506
  return false unless slot_id
507
+ #update stage with the node so we can use it
508
+ user_name = Hdfs.user_name_by_stage_path(stage_path,cluster)
509
+ job_name = s.path.sub("Runner_","")
503
510
 
504
511
  schema_hash = if params['schema']
505
- gdrive_slot = Gdrive.slot_worker_by_path(stage_path)
506
- #return blank response if there are no slots available
507
- return nil unless gdrive_slot
508
512
  Hive.schema_hash(params['schema'],user_name,gdrive_slot)
509
513
  else
510
514
  {}
511
515
  end
512
- Gdrive.unslot_worker_by_path(stage_path)
513
516
  #drop target before create/insert?
514
517
  drop = params['drop']
515
518
 
@@ -524,14 +527,15 @@ module Mobilize
524
527
  source_hql = "select * from #{source_path};"
525
528
  elsif ['gsheet','gridfs','hdfs'].include?(source.handler)
526
529
  if source.path.ie{|sdp| sdp.index(/\.[A-Za-z]ql$/) or sdp.ends_with?(".ql")}
527
- source_hql = source.read(user_name)
530
+ source_hql = source.read(user_name,gdrive_slot)
528
531
  else
529
532
  #tsv from sheet
530
- source_tsv = source.read(user_name)
533
+ source_tsv = source.read(user_name,gdrive_slot)
531
534
  end
532
535
  end
533
536
  end
534
537
 
538
+ Gdrive.unslot_worker_by_path(stage_path)
535
539
  part_array = if params['partitions']
536
540
  params['partitions'].to_a.map{|p| p.gsub(".","/").split("/")}.flatten
537
541
  elsif params['target']
@@ -1,5 +1,5 @@
1
1
  module Mobilize
2
2
  module Hive
3
- VERSION = "1.25"
3
+ VERSION = "1.26"
4
4
  end
5
5
  end
@@ -16,5 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
- gem.add_runtime_dependency "mobilize-hdfs","1.25"
19
+ gem.add_runtime_dependency "mobilize-hdfs","1.26"
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobilize-hive
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.25'
4
+ version: '1.26'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cassio Paes-Leme
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-24 00:00:00.000000000 Z
11
+ date: 2013-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mobilize-hdfs
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '1.25'
19
+ version: '1.26'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '1.25'
26
+ version: '1.26'
27
27
  description: Adds hive read, write, and run support to mobilize-hdfs
28
28
  email:
29
29
  - cpaesleme@dena.com