gpt4 book ai didi

amazon-web-services - AWS 错误消息 : Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4

转载 作者:行者123 更新时间:2023-12-04 08:44:00 27 4
gpt4 key购买 nike

使用 pyspark 写入 S3 存储桶时遇到以下错误。

com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 400, AWS Service: Amazon S3, AWS Request ID: A0B0C0000000DEF0, AWS Error Code: InvalidArgument, AWS Error Message: Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.,


我在 S3 存储桶上使用 AWS KMS 服务应用了服务器端加密。
我正在使用以下 spark-submit 命令 -
spark-submit --packages com.amazonaws:aws-java-sdk-pom:1.10.34,org.apache.hadoop:hadoop-aws:2.7.2 --jars sample-jar sample_pyspark.py 
这是我正在处理的示例代码 -
spark_context = SparkContext()
sql_context = SQLContext(spark_context)
spark = SparkSession.builder.appName('abc').getOrCreate()
hadoopConf = spark_context._jsc.hadoopConfiguration()
hadoopConf.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
#Have a spark dataframe 'source_data
source_data.coalesce(1).write.mode('overwrite').parquet("s3a://sample-bucket")
注意:尝试将 spark-dataframe 加载到 s3 存储桶 [未启用服务器端加密] 并成功

最佳答案

该错误似乎告诉您在 Amazon SDK 上启用 V4 S3 签名。一种方法是从命令行:

spark-submit --conf spark.driver.extraJavaOptions='-Dcom.amazonaws.services.s3.enableV4' \
--conf spark.executor.extraJavaOptions='-Dcom.amazonaws.services.s3.enableV4' \
... (other spark options)
也就是说,我同意史蒂夫的观点,你应该使用更新的 hadoop 库。
引用文献:
  • Amazon s3a returns 400 Bad Request with Spark
  • 关于amazon-web-services - AWS 错误消息 : Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64424333/

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