以下是在EMR上安装和运行配置单元的代码
args = ['s3://' + zone_name + '.elasticmapreduce/libs/hive/hive-script',
'--base-path', 's3://' + zone_name + '.elasticmapreduce/libs/hive/',
'--install-hive', '--hive-versions', '0.13.1']
args2 = ['s3://' + zone_name + '.elasticmapreduce/libs/hive/hive-script',
'--base-path', 's3://' + zone_name + '.elasticmapreduce/libs/hive/',
'--hive-versions', '0.13.1',
'--run-hive-script', '--args',
'-f', s3_url]
steps = []
for name, args in zip(('Setup Hive', 'Run Hive Script'), (args, args2)):
step = JarStep(name,
's3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar',
step_args=args,
# action_on_failure="CANCEL_AND_WAIT"
)
# should be inside loop
steps.append(step)
现在,当我将其提供给run_jobflow时,出于某种原因
我收到错误
Error fetching jar file. java.lang.RuntimeException: Error whilst fetching 's3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar
我可以使用凭据访问存储分区elasticmapreduce/libs/script-runner/
。我该如何解决这个问题呢?或者是否有其他方式可以提供script-runner
答案 0 :(得分:1)
这是由于您的群集所在的区域与您从中获取jar的存储桶所在的区域不同。确保EMR群集位于您要作为“ zone_name”传递的区域中。