gpt4 book ai didi

java - Spark 不从 s3 读取/写入信息(ResponseCode=400,ResponseMessage=Bad Request)

转载 作者:可可西里 更新时间:2023-11-01 14:32:38 24 4
gpt4 key购买 nike

我实现了 spark 应用程序。我创建了 spark 上下文:

    private JavaSparkContext createJavaSparkContext() {
SparkConf conf = new SparkConf();
conf.setAppName("test");
if (conf.get("spark.master", null) == null) {
conf.setMaster("local[4]");
}
conf.set("fs.s3a.awsAccessKeyId", getCredentialConfig().getS3Key());
conf.set("fs.s3a.awsSecretAccessKey", getCredentialConfig().getS3Secret());
conf.set("fs.s3a.endpoint", getCredentialConfig().getS3Endpoint());

return new JavaSparkContext(conf);
}

然后我尝试通过 spark 数据集 API (Spark SQL) 从 s3 获取数据:

     String s = "s3a://" + getCredentialConfig().getS3Bucket();
Dataset<Row> csv = getSparkSession()
.read()
.option("header", "true")
.csv(s + "/dataset.csv");

System.out.println("Read size :" + csv.count());

出现错误:

Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 400, AWS Service: Amazon S3, AWS Request ID: 1A3E8CBD4959289D, AWS Error Code: null, AWS Error Message: Bad Request, S3 Extended Request ID: Q1Fv8sNvcSOWGbhJSu2d3Nfgow00388IpXiiHNKHz8vI/zysC8V8/YyQ1ILVsM2gWQIyTy1miJc=

Hadoop 版本:2.7

AWS 端点:s3.eu-central-1.amazonaws.com

(在 hadoop 2.8 上——一切正常)

最佳答案

问题是:Frankfurt 不支持 s3n。需要使用s3a。并且这个区域有V4 auth版本。 http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

仅限欧盟(法兰克福)eu-central-1 版本 4

这意味着需要在 aws 客户端上启用它。需要添加系统属性

com.amazonaws.services.s3.enableV4 -> true

conf.set("com.amazonaws.services.s3.enableV4", "true");//doesn't work for me

在我用过的本地机器上:

System.setProperty("com.amazonaws.services.s3.enableV4", "true");

要在 AWS EMR 上运行,需要将参数添加到 spark-submit:

spark.executor.extraJavaOptions=-Dcom.amazonaws.services.s3.enableV4=true
spark.driver.extraJavaOptions=-Dcom.amazonaws.services.s3.enableV4=true

关于java - Spark 不从 s3 读取/写入信息(ResponseCode=400,ResponseMessage=Bad Request),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46152202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com