2016-02-22 13 views
5

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.

Trả lời

4

Điều này hiện được giải quyết. --emrfs không áp dụng đúng cấu hình. Nhưng tùy chọn bên dưới với aws emr create-cluster hoạt động với cả tia lửa và hadoop distcp.

--configurations '[{"Classification":"emrfs-site","Properties":{"fs.s3.enableServerSideEncryption":"true"},"Configurations":[]}]'

Như các trường hợp EC2 đã được thiết lập với cấu hình vai trò để đọc/ghi từ xô, mã spark tôi làm việc mà không cần phải cung cấp các phím truy cập AWS.

Nhiều tùy chọn cấu hình EMR có sẵn trong, có thể được sử dụng với tùy chọn --configuration với emr create-clusterhttp://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-configure-apps.html

Tôi không chắc chắn lý do tại sao EMR AWS là cho 2 lựa chọn để thực hiện điều tương tự. Một công trình và những thứ khác thì không.

Các vấn đề liên quan