Не удается прочитать файлы из S3 через отдельное приложение Spark 2.2.1 - получение: нет файловой системы для схемы: fs.s3a.impl - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь прочитать файл из S3 с помощью автономного кластера Spark 2.2.1 (локально), используя следующие дескрипторы файловой системы: s3, s3a, s3n, но каждый раз я получаю сообщение об ошибке:

No FileSystem for scheme: fs.s3a.impl

Код, который я использую:

String fileSystemPrefix = "s3a";
String awsAccessKeyId = String.format("fs.%s.awsAccessKeyId", fileSystemPrefix);
String awsSecretAccessKey = String.format("fs.%s.awsSecretAccessKey", fileSystemPrefix);
String fileSystemImpl = String.format("fs.%s.impl", fileSystemPrefix);
String fileSystemImplLib = "org.apache.hadoop.fs.s3a.S3AFileSystem";

Configuration hadoopConf = ctx.hadoopConfiguration();
hadoopConf.set(fileSystemImpl, fileSystemImplLib);
hadoopConf.set(awsAccessKeyId, this.s3Key);
hadoopConf.set(awsSecretAccessKey, this.s3Secret);

Затем я строю путь (проверенный) и, используя этот путь, я пытаюсь создать JavaRDD<String>, работающий:

ctx.textFile(filePath, minPartitions);

Пом. xml имеет:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-aws</artifactId>
    <version>2.7.3</version>
</dependency>
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.7.4</version>
</dependency>

Я также установил spark-defaults.conf с:

spark.driver.extraClassPath /mnt/c/Users/user/spark/jars/hadoop-aws-2.7.3.jar
spark.driver.extraClassPath /mnt/c/Users/user/spark/jars/aws-java-sdk-1.7.4.jar
spark.jars.packages com.amazonaws:aws-java-sdk:1.7.4,org.apache.hadoop:hadoop-aws:2.7.3

Может ли кто-нибудь помочь с этим? Буду очень признателен за любые советы. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...