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