首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Spark和Java从s3读取文件时未能连接到服务端点

使用Spark和Java从s3读取文件时未能连接到服务端点
EN

Stack Overflow用户
提问于 2020-08-11 11:15:50
回答 1查看 7.6K关注 0票数 0

我需要将S3桶中的一个文件读入火花dataSet。我使用了正确的secretKey和accessKey,我也尝试了端点配置,但我得到了以下错误:

代码语言:javascript
运行
复制
com.amazonaws.SdkClientException: Failed to connect to service endpoint: 
 at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100)
 at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.getToken(InstanceMetadataServiceResourceFetcher.java:91)

 ... 74 more



java.nio.file.AccessDeniedException: datalakedbr: org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: No AWS Credentials provided by SimpleAWSCredentialsProvider EnvironmentVariableCredentialsProvider InstanceProfileCredentialsProvider : com.amazonaws.SdkClientException: Failed to connect to service endpoint: 

 at org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:187)
 at org.apache.hadoop.fs.s3a.Invoker.once(Invoker.java:111)
 at org.apache.hadoop.fs.s3a.Invoker.lambda$retry$3(Invoker.java:265)
 at org.apache.hadoop.fs.s3a.Invoker.retryUntranslated(Invoker.java:322)
 at org.apache.hadoop.fs.s3a.Invoker.retry(Invoker.java:261)
Caused by: org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: No AWS Credentials provided by SimpleAWSCredentialsProvider EnvironmentVariableCredentialsProvider InstanceProfileCredentialsProvider : com.amazonaws.SdkClientException: Failed to connect to service endpoint: 
 at org.apache.hadoop.fs.s3a.AWSCredentialProviderList.getCredentials(AWSCredentialProviderList.java:159)

这是所使用的方法:

代码语言:javascript
运行
复制
    parkSession sparkSession = SparkSession.builder()
            .master("local").appName("readFile")
            .config("fs.s3a.awsAccessKeyId", "key")
            .config("fs.s3a.awsSecretAccessKey", "secretKey")
            .getOrCreate();
    JavaSparkContext sparkContext = new JavaSparkContext(sparkSession.sparkContext());
    String path = "s3a://bucket/path.json";
    Dataset<Row> file = sparkSession.sqlContext().read().load(path);

有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-11 12:53:10

我相信问题在于物业的名称。

查看这里的Hadoop文档:https://hadoop.apache.org/docs/r2.7.2/hadoop-aws/tools/hadoop-aws/index.html

它说,对于fs.s3a.access.key / fs.s3a.secret.key,,属性的名称应该是fs.s3a.awsAccessKeyId / fs.s3a.awsSecretAccessKey,而不是fs.s3a.awsAccessKeyId/fs.s3a.awsSecretAccessKey。

其他选项是fs.s3.awsAccessKeyId ( S3 )或fs.s3n.awsAccessKeyId (S3N)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63357022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档