Apache spark Spark&x2B;EMRFS/S3—是否有一种方法可以读取客户端加密数据并使用服务器端加密将其写回?
我在spark中有一个用例,我必须从使用客户端加密的S3读取数据,处理数据,然后仅使用服务器端加密将其写回。我想知道有没有办法在spark中做到这一点 目前,我设置了以下选项:Apache spark Spark&x2B;EMRFS/S3—是否有一种方法可以读取客户端加密数据并使用服务器端加密将其写回?,apache-spark,amazon-s3,encryption,Apache Spark,Amazon S3,Encryption,我在spark中有一个用例,我必须从使用客户端加密的S3读取数据,处理数据,然后仅使用服务器端加密将其写回。我想知道有没有办法在spark中做到这一点 目前,我设置了以下选项: spark.hadoop.fs.s3.cse.enabled=true spark.hadoop.fs.s3.enableServerSideEncryption=true spark.hadoop.fs.s3.serverSideEncryption.kms.keyId=<kms id here> spa
spark.hadoop.fs.s3.cse.enabled=true
spark.hadoop.fs.s3.enableServerSideEncryption=true
spark.hadoop.fs.s3.serverSideEncryption.kms.keyId=<kms id here>
spark.hadoop.fs.s3.cse.enabled=true
spark.hadoop.fs.s3.enableServerSideEncryption=true
spark.hadoop.fs.s3.serverSideEncryption.kms.keyId=
但很明显,它在编写数据时同时使用了CSE和SSE。所以,我想知道是否有可能在读取时只将spark.hadoop.fs.s3.cse.enabled设置为true,然后将其设置为false或其他替代设置
感谢您的帮助。使用编程配置定义多个S3文件系统:
spark.hadoop.fs.s3.cse.enabled=true
spark.hadoop.fs.s3sse.impl=foo.bar.S3SseFilesystem
然后为s3sse
添加自定义实现:
package foo.bar
import java.net.URI
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.s3a.S3AFileSystem
class S3SseFilesystem extends S3AFileSystem {
override def initialize(name: URI, originalConf: Configuration): Unit = {
val conf = new Configuration()
// NOTE: no prefix spark.hadoop here
conf.set("fs.s3.enableServerSideEncryption", "true")
conf.set("fs.s3.serverSideEncryption.kms.keyId", "<kms id here>")
super.initialize(name, conf)
}
}
使用编程配置定义多个S3文件系统:
spark.hadoop.fs.s3.cse.enabled=true
spark.hadoop.fs.s3sse.impl=foo.bar.S3SseFilesystem
然后为s3sse
添加自定义实现:
package foo.bar
import java.net.URI
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.s3a.S3AFileSystem
class S3SseFilesystem extends S3AFileSystem {
override def initialize(name: URI, originalConf: Configuration): Unit = {
val conf = new Configuration()
// NOTE: no prefix spark.hadoop here
conf.set("fs.s3.enableServerSideEncryption", "true")
conf.set("fs.s3.serverSideEncryption.kms.keyId", "<kms id here>")
super.initialize(name, conf)
}
}
这些不是s3a用户所使用的配置设置(提示:所有小写,所有
fs.s3a
。不知道您扩展了谁的fs,但它不是apache的。此外:s3a不支持S3-CSE,因为字节填充意味着它在历史上不可用。这些配置设置不是s3a用户所使用的(提示:全部小写,全部fs.s3a
。不知道扩展了谁的fs,但它不是apache的。另外:s3a不支持S3-CSE,因为字节填充意味着它在历史上不可用