【发布时间】:2021-10-26 22:53:49
【问题描述】:
我正在使用 MINIO,并且我在 amazon EKS kubernetes 集群上启动了一个带有 helm 的 MINIO 网关。我添加了以下火花端所需的属性
sparkConf.set("fs.s3a.endpoint", "minio-k8s-service':9000");
sparkConf.set("fs.s3a.connection.ssl.enabled", "false");
sparkConf.set("fs.s3a.signing-algorithm", "S3SignerType");
sparkConf.set("s.s3a.connection.timeout", "100000");
sparkConf.set("spark.master", "k8sSchedulerURL");
sparkConf.set("spark.deploy.mode", "cluster");
sparkConf.set("fs.s3a.committer.staging.conflict-mode", "replace");sparkConf.set("spark.hadoop.fs.s3a.access.key","myaccesskey")sparkConf.set("spark.hadoop.fs.s3a.secret.key","mysecretkey")
下面的代码行可以正常工作。当我尝试从 S3 读取文件时
JavaSparkContext(session.sparkContext()).textFile("s3a://mybbucket/myfolder/sample.parquet", 1)
但是,如果我尝试加载如下所示的文件,则会失败并出现访问被拒绝错误
sc.read().parquet("s3a://mybucket/myfolder/myfile.parquet")
在 s3a://mybucket/myfolder/testfile.parquet 上出现错误 getFileStatus 失败:com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden ; 请求 ID: XYZ123XYZ; S3 扩展请求 ID: null), S3 扩展请求 ID: null:403 Forbidden
我正在使用带有 spark3.1.1 的 hadoop-aws-3.2.0 jar。我使用 AWS 的 accesskey 和 secretkey 是正确的,并尝试了所有可能的选项。即使通过正确的凭据显示此错误,此错误看起来也很奇怪。
任何帮助表示赞赏。
【问题讨论】:
-
AWS Glue 本地 docker 实例尝试通过 pyspark 脚本连接到 Minio s3 存储时遇到同样的问题,您解决了吗?
标签: apache-spark kubernetes pyspark amazon-eks minio