我正尝试使用Spark按照以下方式连接到s3存储桶:
rdd=sc.textFile("s3n://bucketname/objectname")
rdd=sc.textFile(""s3a://bucketname/objectname")
并将我的cores-site.xml
更改为s3a或s3n,但出现以下错误。在我的hadoop core-site.xml
中尝试了各种更改。我收到诸如“从链中任何提供程序加载AWS凭证”之类的错误。 {/.aws凭证文件具有正确的凭证}
ResponseStatus:错误的请求,XML错误消息:
AuthorizationHeaderMalformed
授权标头格式错误;非空访问密钥(AKID)必须 在凭据中提供
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://********.compute-1.amazonaws.com:9000</value>
</property>
<property>
<name>fs.s3a.impl</name>
<value>org.apache.hadoop.fs.s3a.S3AFileSystem</value>
</property>
<property>
<name>fs.s3a.access.key</name>
<value>ACCESSKEYID</value>
</property>
<property>
<name>fs.s3a.secret.key</name>
<value>SECRETKEY</value>
</property>
</configuration>
我将aws-sdk-s3添加到了我的火花罐文件中。请为我提供指导,以使我进入正确的轨道。
完整的错误消息:
Bad Request, XML Error Message: <?xml version="1.0" encoding="UTF-8"?><Error><Code>AuthorizationHeaderMalformed</Code><Message>The authorization header is malformed; a non-empty Access Key (AKID) must be provided in the credential.</Message><RequestId>E64EEB94923F0FF7</RequestId><HostId>cmAiSUGZo7w7IgK3gJ+ubuWdlXwffEhpnpdnkoJQ2hLP8EHBXZDau0mFCKCC3eWBtfL9V1Le4Mw=</HostId></Error>