Я создаю кластер amazon emr, где одним из шагов является сценарий bash, выполняемый script-runner.jar
:
aws emr create cluster ... --steps '[ ... {
"Args":["s3://bucket/scripts/script.sh"],
"Type":"CUSTOM_JAR",
"ActionOnFailure":"TERMINATE_CLUSTER",
"Jar":"s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar",
}, ... ]'...
, как описано в https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hadoop-script.html
script.sh
потребностидругие файлы в его командах: думать awk ... -f file
, sed ... -f file
, psql ... -f file
и т. д.
На моем ноутбуке с обоими значениями script.sh
и file
s в моем рабочем каталоге все работает просто отлично.Однако после того, как я загрузил все в s3://bucket/scripts
, создание кластера завершилось неудачно с помощью:
file: No such file or directory
Command exiting with ret '1'
Я нашел решение, опубликованное ниже, но мне это не нравится по указанным причинам.Если у вас есть лучшее решение, пожалуйста, опубликуйте его, чтобы я мог принять его.