2016-09-15 117 views
0

我正在使用AWS EMR 5.0,Spark 2.0,Scala 2.11,S3 - 使用KMS(SSE-custom key),Parquet文件加密。我可以读取加密的地板文件 - 没问题。但是,当我写作时,我会收到警告。简化的代码如下所示:AWS EMR写入KMS加密S3实木复合地板文件

val headerHistory = spark.read.parquet("s3://<my bucket>/header_1473640645") 
headerHistory.write.parquet("s3://<my bucket>/temp/") 

而是生成一个警告:

16/09/15 13点11分十一秒WARN S3V4AuthErrorRetryStrategy:尝试重新发送请求到我的bucket.s3.amazonaws.com通过AWS V4认证。为避免将来出现此警告,请使用特定于区域的端点来访问位于需要V4签名的区域中的存储桶。

我需要一个选项吗?我需要设置一些环境变量吗?

回答

1

感谢您提供其他详细信息。

是的,当使用EMRFS(s3通信引擎下的库)时,这是KMS + SSE的已知问题。

问题出在服务器端加密+ kms启用时,emrfs中的s3client制定了请求而未指定签署者类型。 以一种保守的方式,s3会先尝试V2,然后在第一次尝试失败时重试V4。这种行为会减慢整个过程。 EMRFS将被修补以指定在第一次尝试时使用V4,这应该在下一个EMR版本中得到解决。

如前所述,它不会中断工作。

请大家继续关注的到来EMR 5.x中(无ETA)

https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-whatsnew.html

相关问题