这是在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/

10-10 01:56