Как отправить задание SPARK, файл которого находится в хранилище объектов S3 - PullRequest
0 голосов
/ 28 марта 2020

У меня есть кластер SPARK с Yarn, и я хочу поместить банку своей работы в S3, 100% совместимое хранилище объектов. Если я хочу отправить задание, я выполняю поиск в Google и, кажется, просто так: spark-submit --master yarn --deploy-mode cluster <... другие параметры ...> s3: // my_ bucket / jar_file Однако хранилище объектов S3 требует имя пользователя и пароль для доступа. Итак, как мне настроить эти учетные данные, чтобы SPARRK мог загрузить банку с S3? Большое спасибо!

1 Ответ

0 голосов
/ 29 марта 2020

Вы можете использовать Default Credential Provider Chain из AWS документов :

export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
./bin/spark-submit \
    --master local[2] \
    --class org.apache.spark.examples.SparkPi \
    s3a://your_bucket/.../spark-examples_2.11-2.4.6-SNAPSHOT.jar

Мне нужно было загрузить следующие банки из Maven и поместить их в Spark jar dir, чтобы использовать схему s3a в spark-submit (обратите внимание, вы можете использовать директиву --packages для ссылки на эти зависимости внутри вашего jar, но не из самого spark-submit):

// build Spark `assembly` project
sbt "project assembly" package
cd assembly/target/scala-2.11/jars/ 
wget https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk/1.7.4/aws-java-sdk-1.7.4.jar 
wget https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/2.7.7/hadoop-aws-2.7.7.jar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...