Поддерживает ли Amazon S3 в Scality S3AFileSystem для взаимодействия с hadoop? - PullRequest
0 голосов
/ 14 ноября 2018

Я создал искровой код, который делает копию папки и помещает ее в отдельную корзину Amazon S3. Процесс работает просто отлично, но сейчас я пытаюсь использовать тот же процесс с корзиной Amazon S3, работающей на Scality. Это моя конфигурация.

spark-submit --name "Backup S3 Test" --master yarn-cluster  --executor-memory 2048m --num-executors 6 --executor-cores 2 --driver-memory 1024m --keytab /home/bigdata/userbcks3.keytab 
--principal XXXXXXX@XXXXXXXX 
--deploy-mode cluster 
--conf spark.file.replicate.exclusion.regexps="" 
--conf spark.hadoop.fs.s3a.access.key=XXXXXXXXXX 
--conf spark.hadoop.fs.s3a.secret.key=XXXXXXXXXX 
--class com.keedio.hadoop.FileReplicator hdfs-file-processors-1.1.6-SNAPSHOT.jar /pre/mydata/ s3a://mybucket/

А теперь исключение

om.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)

        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)

        at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)

        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)

        at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4221)

        at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4168)

        at com.amazonaws.services.s3.AmazonS3Client.headBucket(AmazonS3Client.java:1306)

        at com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:1263)

        at org.apache.hadoop.fs.s3a.S3AFileSystem.verifyBucketExists(S3AFileSystem.java:323)

        ... 20 more

Caused by: com.amazonaws.SdkClientException: The requested metadata is not found at http://169.254.169.254/latest/meta-data/iam/security-credentials/

        at com.amazonaws.internal.EC2CredentialsUtils.readResource(EC2CredentialsUtils.java:115)

        at com.amazonaws.internal.EC2CredentialsUtils.readResource(EC2CredentialsUtils.java:77)

        at com.amazonaws.auth.InstanceProfileCredentialsProvider$InstanceMetadataCredentialsEndpointProvider.getCredentialsEndpoint(InstanceProfileCredentialsProvider.java:156)

        at com.amazonaws.auth.EC2CredentialsFetcher.fetchCredentials(EC2CredentialsFetcher.java:121)

        at com.amazonaws.auth.EC2CredentialsFetcher.getCredentials(EC2CredentialsFetcher.java:82)

        at com.amazonaws.auth.InstanceProfileCredentialsProvider.getCredentials(InstanceProfileCredentialsProvider.java:141)

        at org.apache.hadoop.fs.s3a.AWSCredentialProviderList.getCredentials(AWSCredentialProviderList.java:129)

Чтобы сделать копию, я просто использую apache FileUtils, который позволяет мне перемещать файлы между DistributedFileSystem и S3AFileSystem. Есть ли способ заставить его работать с тем же процессом? Может быть, мне не хватает какого-либо параметра конфигурации?

1 Ответ

0 голосов
/ 14 ноября 2018

независимо от того, какую программу вы используете, она не получает значения fs.s3a.access.key / secret.key, запускается через другие параметры аутентификации (env vars, сервер метаданных EC2) и не работает.Вы еще не достигли связи с дальним концом.

, если ваш код работал раньше, и он работал в EC2, то, возможно, он всегда был тем сервером метаданных, который регистрировал вас ....

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