使用Spark将数据写入S3表时拒绝访问(403)

时间:2018-02-22 18:09:17

标签: amazon-web-services apache-spark amazon-s3

我使用Hive在EMR集群上创建了一个指向S3的外部表。现在我正在尝试使用Spark将数据插入到表中,由于权限问题导致数据失败,但使用Hive shell进行相同的插入查询。 我需要在Spark中设置access_key和secret_key吗?我确实在火花壳中尝试了它们,但没有运气。

root

我在这里错过了什么吗?

sc.hadoopConfiguration.set("fs.s3a.access.key","xxxxxxxxxx");
sc.hadoopConfiguration.set("fs.s3a.secret.key","xxxxxxxxxx");
sc.hadoopConfiguration.set("fs.s3.access.key","xxxxxxxxxx");
sc.hadoopConfiguration.set("fs.s3.secret.key","xxxxxxxxxx");

Spark代码:

create external table test
(
column1 string
) stored as parquet location 's3://bucket/data/test';
insert overwrite test select * from source;  

错误:

  

com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception:   拒绝访问(服务:Amazon S3;状态代码:403;错误代码:   拒绝访问;请求ID:685BCC1B6F49A705):com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.http.AmazonHttpClient $ RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1588)   在......

谢谢!

0 个答案:

没有答案