这是在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
最佳答案
这是由于您的群集所在的区域与您从中获取jar的存储桶所在的区域不同。确保EMR群集位于您要作为“ zone_name”传递的区域中。
关于python - 找不到script-runner.jar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44662408/