2016-09-15 102 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

相關問題