Video: Kenneth Cukier: Big data is better data 2025
MapReduce ngày càng trở nên hữu ích cho các dữ liệu lớn. Vào đầu những năm 2000, một số kỹ sư tại Google nhìn vào tương lai và xác định rằng mặc dù các giải pháp hiện tại của họ cho các ứng dụng như thu thập dữ liệu web, tần suất truy vấn, v.v … đủ cho hầu hết các yêu cầu hiện tại, chúng không tương xứng với sự phức tạp mà họ dự đoán là web thu nhỏ cho nhiều người dùng hơn.
Các kỹ sư này xác định rằng nếu công việc có thể được phân phối trên các máy tính rẻ tiền và sau đó được kết nối trên mạng dưới dạng "cụm", họ có thể giải quyết vấn đề. Phân phối một mình không phải là một câu trả lời đầy đủ. Sự phân bố công việc này phải được thực hiện song song vì ba lý do sau:
-
Việc xử lý phải có khả năng mở rộng và hợp đồng tự động.
-
Việc xử lý phải có khả năng tiến hành bất kể lỗi trong mạng hoặc các hệ thống riêng lẻ.
-
Các nhà phát triển tận dụng cách tiếp cận này phải có khả năng tạo ra các dịch vụ dễ dàng sử dụng bởi các nhà phát triển khác. Do đó, cách tiếp cận này phải độc lập với nơi dữ liệu và tính toán đã thực hiện.
MapReduce được thiết kế như một mô hình lập trình chung. Một số triển khai ban đầu cung cấp tất cả các yêu cầu chính của thực hiện song song, khoan dung lỗi, cân bằng tải, và thao tác dữ liệu. Các kỹ sư phụ trách dự án có tên là MapReduce vì nó kết hợp hai khả năng từ các ngôn ngữ máy tính hiện có: bản đồ và giảm .
Các kỹ sư của Google đã thiết kế MapReduce để giải quyết một vấn đề thực tế cụ thể. Do đó, nó được thiết kế như là một mô hình lập trình kết hợp với việc thực hiện mô hình đó - về bản chất, một sự thực hiện tham chiếu.
Việc thực hiện tham khảo được sử dụng để chứng minh tính thực tế và hiệu quả của khái niệm này và để đảm bảo rằng mô hình này sẽ được ngành công nghiệp máy tính chấp nhận rộng rãi. Qua nhiều năm, các triển khai khác của MapReduce đã được tạo ra và có sẵn dưới dạng cả các sản phẩm mã nguồn mở và thương mại.