【发布时间】:2017-05-31 12:10:00
【问题描述】:
我在亚太地区(孟买)地区创建了一个存储桶,在新加坡地区创建了另一个存储桶。我将键设置为环境变量。然后在 Spark shell 中运行以下命令。
新加坡:
sc.hadoopConfiguration.set("fs.s3a.endpoint","s3-ap-southeast-1.amazonaws.com")
val testdf = sqlContext.read.csv("s3a://dev-singapore/test.csv")
运行良好。
孟买:
sc.hadoopConfiguration.set("fs.s3a.endpoint","s3.ap-south-1.amazonaws.com")
val testdf = sqlContext.read.csv("s3a://dev-mumbai/test.csv")
但它给了我以下错误
17/05/31 11:56:58 WARN DataSource: Error while looking for metadata directory.
com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 301, AWS Service: Amazon S3, AWS Request ID: BDFC*****9C820, AWS Error Code: null, AWS Error Message: Moved Permanently
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:798)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:421)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:232)
孟买地区 S3 服务器仅支持签名版本 4,而新加坡同时支持版本 2 和 4。
我使用了来自 docker 镜像 https://hub.docker.com/r/stvdberghe/spark-s3/ 的 Spark (2.0.0)
【问题讨论】:
标签: amazon-web-services amazon-s3