Есть ли способ настроить действия начальной загрузки для запуска на EMR после установки основных служб (Spark и т. Д.)? - PullRequest
0 голосов
/ 03 октября 2019

Есть ли способ настроить действия начальной загрузки для запуска на EMR после установки основных служб (Spark и т. Д.)? Я использую emr-5.27.0.

1 Ответ

0 голосов
/ 03 октября 2019

Вы можете отправить некоторый скрипт как step, а не как загрузчик. Например, я создал скрипт обновления SSL-сертификата, и он шаг за шагом применяется к EMR. Это часть моей лямбда-функции на языке Python. Но вы можете добавить этот шаг вручную на консоли или на других языках.

Steps=[{
    'Name': 'PrestoCertificate',
    'ActionOnFailure': 'CONTINUE',
    'HadoopJarStep': {
        'Jar': 's3://ap-northeast-2.elasticmapreduce/libs/script-runner/script-runner.jar',
        'Args': ['s3://myS3/PrestoSteps_InstallCertificate.sh']
    }
}]

Ключевым моментом является script-runner.jar, предварительно созданный amazon, и вы можете использовать его для каждого региона, изменивпрефикс региона. Он получает файл .sh и запускает его.

Одна вещь, которую вы должны знать, это то, что скрипт будет запускаться на всех узлах, и если вы хотите сделать это только на главном экземпляре, вам придется использовать if-elseзаявление.

#!/bin/bash
BOOL=`cat /emr/instance-controller/lib/info/instance.json | jq .isMaster`

if [ $BOOL == "true" ]
then
    <your code>
fi
...