lib/elasticity/hive_step.rb in elasticity-2.5.1 vs lib/elasticity/hive_step.rb in elasticity-2.5.2
- old
+ new
@@ -10,15 +10,15 @@
attr_accessor :action_on_failure
def initialize(script)
@name = "Elasticity Hive Step (#{script})"
@script = script
- @variables = { }
+ @variables = {}
@action_on_failure = 'TERMINATE_JOB_FLOW'
end
- def to_aws_step(job_flow)
+ def to_aws_step(_)
args = %w(s3://elasticmapreduce/libs/hive/hive-script --base-path s3://elasticmapreduce/libs/hive/ --hive-versions latest --run-hive-script --args)
args.concat(['-f', @script])
@variables.keys.sort.each do |name|
args.concat(['-d', "#{name}=#{@variables[name]}"])
end
@@ -34,18 +34,43 @@
def self.requires_installation?
true
end
- def self.aws_installation_step
- {
- :action_on_failure => 'TERMINATE_JOB_FLOW',
- :hadoop_jar_step => {
- :jar => 's3://elasticmapreduce/libs/script-runner/script-runner.jar',
- :args => %w(s3://elasticmapreduce/libs/hive/hive-script --base-path s3://elasticmapreduce/libs/hive/ --install-hive --hive-versions latest)
- },
- :name => 'Elasticity - Install Hive'
- }
+ def self.aws_installation_step_name
+ 'Elasticity - Install Hive'
+ end
+
+ def self.aws_installation_steps
+ steps = [
+ {
+ :action_on_failure => 'TERMINATE_JOB_FLOW',
+ :hadoop_jar_step => {
+ :jar => 's3://elasticmapreduce/libs/script-runner/script-runner.jar',
+ :args => %w(s3://elasticmapreduce/libs/hive/hive-script --base-path s3://elasticmapreduce/libs/hive/ --install-hive --hive-versions latest)
+ },
+ :name => aws_installation_step_name
+ }
+ ]
+ if Elasticity.configuration.hive_site
+ steps << {
+ :action_on_failure => 'TERMINATE_JOB_FLOW',
+ :hadoop_jar_step => {
+ :jar => 's3://elasticmapreduce/libs/script-runner/script-runner.jar',
+ :args => [
+ 's3://elasticmapreduce/libs/hive/hive-script',
+ '--base-path',
+ 's3://elasticmapreduce/libs/hive/',
+ '--install-hive-site',
+ "--hive-site=#{Elasticity.configuration.hive_site}",
+ '--hive-versions',
+ 'latest'
+ ],
+ },
+ :name => 'Elasticity - Configure Hive via Hive Site'
+ }
+ end
+ steps
end
end
end
\ No newline at end of file