2013-05-03 38 views
6

Nếu tôi có thư mục với ~ 5000 tệp nhỏ trên S3, có cách nào để dễ dàng nén toàn bộ thư mục và để tệp zip kết quả trên S3 không? Tôi cần phải làm điều này mà không phải tự truy cập từng tệp.Zip toàn bộ thư mục trên S3

Cảm ơn!

+0

http://www.w2lessons.com/2012/01/fast-zipping-in-amazon-s3.html –

+0

tôi thấy điều đó, nhưng nó vẫn yêu cầu tải xuống từng tập tin riêng trên ec2, hiện tại là nút cổ chai của chúng tôi – Jin

Trả lời

4

Không, không có viên đạn ma thuật.

(Ngoài ra, bạn phải nhận ra rằng không có thứ gì như "thư mục" trong S3. Chỉ có đối tượng có đường dẫn. Bạn có thể nhận danh sách giống thư mục, nhưng ký tự '/' không phải là ' t ma thuật - bạn có thể nhận tiền tố bằng bất kỳ ký tự nào bạn muốn.)

Khi ai đó chỉ ra, "nén trước" chúng có thể giúp cả tốc độ tải xuống và nối thêm tốc độ. (Với chi phí lưu trữ trùng lặp.)

Nếu tải xuống là nút cổ chai, có vẻ như bạn đang tải xuống serially. S3 có thể hỗ trợ 1000 kết nối đồng thời cho cùng một đối tượng mà không làm đổ mồ hôi. Bạn sẽ cần chạy các điểm chuẩn để xem có bao nhiêu kết nối tốt nhất, vì quá nhiều kết nối từ một hộp có thể bị điều chỉnh bởi S3. Và bạn có thể cần thực hiện một số TCP tuning khi thực hiện 1000 kết nối mỗi giây.

"Giải pháp" phụ thuộc rất nhiều vào mẫu truy cập dữ liệu của bạn. Thử sắp xếp lại vấn đề. Nếu việc tải xuống một tệp của bạn là không thường xuyên, có thể có ý nghĩa hơn khi nhóm chúng 100 lần vào S3, sau đó chia nhỏ chúng ra khi được yêu cầu. Nếu chúng là các tệp nhỏ, có thể có ý nghĩa để lưu chúng vào hệ thống tệp. Hoặc có thể lưu trữ tất cả 5000 tệp dưới dạng một tệp zip lớn trong S3 và sử dụng "khách hàng thông minh" có thể tải xuống phạm vi cụ thể của tệp zip để phân phát các tệp riêng lẻ. (S3 hỗ trợ các dải byte, như tôi nhớ lại.)

+0

Tôi hiểu .. Đó là những gì tôi nghĩ. Nút cổ chai của chúng tôi thực sự là EMR truy cập S3 lặp đi lặp lại cho các tệp này .. Chúng tôi đã thử sử dụng 's3distcp' để sao chép tất cả mọi thứ nhưng nó vẫn rất chậm. Tôi sẽ suy nghĩ lại nền tảng và có thể concat tất cả các tập tin với nhau và sau đó gửi chúng đến S3 (có lẽ sẽ cải thiện hiệu suất EMR quá) .. Cảm ơn cho cái nhìn sâu sắc! – Jin

+0

Đó là một điều phổ biến để làm. Đó là một sự xấu hổ không ai chia sẻ công khai giải pháp của họ được nêu ra và tất cả mọi người phải tái phát minh ra bánh xe. –

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