2012-06-12 22 views
12

Tôi có một cơ sở dữ liệu Mongo lớn (100GB) được lưu trữ trên đám mây (MongoLab hoặc MongoHQ). Tôi muốn chạy một số nhiệm vụ Map/Reduce trên dữ liệu để tính toán một số số liệu thống kê tốn kém và tự hỏi quy trình làm việc tốt nhất là làm gì. Lý tưởng nhất là tôi muốn sử dụng các dịch vụ Map/Reduce của Amazon để làm điều này thay vì duy trì cụm Hadoop của riêng tôi.Cách tốt nhất để chạy Bản đồ/Giảm nội dung trên dữ liệu từ Mongo là gì?

Có sao chép dữ liệu từ cơ sở dữ liệu sang S3 không. Sau đó chạy Amazon Map/Reduce trên nó? Hoặc có cách nào tốt hơn để hoàn thành công việc này.

Ngoài ra nếu tiếp tục xuống dòng tôi có thể muốn chạy các truy vấn thường xuyên như mỗi ngày để dữ liệu trên S3 sẽ cần phải phản chiếu những gì trong Mongo sẽ phức tạp điều này?

Bất kỳ đề xuất/câu chuyện chiến tranh nào đều hữu ích.

Trả lời

9

Amazon S3 cung cấp một tiện ích gọi là S3DistCp để lấy dữ liệu vào và ra khỏi S3. Điều này thường được sử dụng khi chạy sản phẩm EMR của Amazon và bạn không muốn lưu trữ cụm của riêng mình hoặc sử dụng các phiên bản để lưu trữ dữ liệu. S3 có thể lưu trữ tất cả dữ liệu của bạn cho bạn và EMR có thể đọc/ghi dữ liệu từ/đến S3.

Tuy nhiên, việc chuyển 100 GB sẽ mất thời gian và nếu bạn dự định thực hiện việc này nhiều hơn một lần (nghĩa là nhiều hơn một lần), nó sẽ là nút cổ chai đáng kể trong quá trình xử lý của bạn. lớn lên).

Có vẻ như bạn không cần sử dụng S3. Mongo đã triển khai một bộ điều hợp để thực hiện ánh xạ làm giảm việc làm trên đầu trang MongoDB của bạn. http://blog.mongodb.org/post/24610529795/hadoop-streaming-support-for-mongodb

Điều này có vẻ hấp dẫn vì nó cho phép bạn triển khai MR trong python/js/ruby.

Tôi nghĩ rằng thiết lập mongo-hadoop này sẽ hiệu quả hơn việc sao chép 100GB dữ liệu ra S3.

CẬP NHẬT: Ví dụ về cách sử dụng giảm bản đồ với mongo here.

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