Tôi đang chạy Cụm EMR AWS để chạy công việc tia lửa. Để làm việc với các thùng s3, cấu hình hadoop được thiết lập với các khóa truy cập, các khóa bí mật, enableServerSideEncryption và thuật toán được sử dụng cho việc mã hóa. Xin vui lòng xem mã dưới đâySpark/Hadoop - Không thể lưu vào s3 với mã hóa phía máy chủ
val hadoopConf = sc.hadoopConfiguration; hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem") hadoopConf.set("fs.s3.awsAccessKeyId", "xxx") hadoopConf.set("fs.s3.awsSecretAccessKey", "xxx") hadoopConf.set("fs.s3.enableServerSideEncryption", "true") hadoopConf.set("fs.s3.serverSideEncryptionAlgorithm","AES256")
Theo cấu hình trên, chương trình tia lửa có khả năng đọc từ xô s3, thực hiện các xử lý. Nhưng thất bại khi nó cố gắng để lưu kết quả vào s3, mà thực thi rằng dữ liệu phải được mã hóa. Nếu nhóm cho phép dữ liệu chưa được mã hóa thì nó sẽ được lưu thành công chưa được mã hóa.
Điều này xảy ra ngay cả khi cụm được tạo bằng tùy chọn thực thi mã hóa phía máy chủ --emrfs Encryption=ServerSide,Args=[fs.s3.serverSideEncryptionAlgorithm=AES256]
.
phân phối hadoop từ hdfs trên emr đến s3 cũng không thành công. Tuy nhiên, s3-dist-copy (phiên bản aws hdfs distcp) khi được thiết lập với tùy chọn --s3ServerSideEncryption hoạt động thành công.
Tuy nhiên, cá thể ec2 có quyền vai trò bắt buộc để tải dữ liệu lên cùng một nhóm với mã hóa phía máy chủ mà không cần sử dụng bất kỳ khóa truy cập người dùng nào. Vui lòng xem ví dụ dưới đây. Nếu -sse được bỏ qua trong lệnh dưới đây, nó sẽ ném một "Truy cập bị từ chối lỗi."
aws s3 cp test.txt s3://encrypted-bucket/ —sse
Nó sẽ rất hữu ích, nếu ai đó có thể giúp với cấu hình yêu cầu trong tia lửa/hadoop để lưu dữ liệu vào AWS s3 với mã hóa Server side.