• Là một mô hình lập trình được đề xuất trong các
ngôn ngữ lập trình hàm như Lisp, ML.
• Một trong những tính năng nổi bật của các ngôn
ngữ lập trình hàm là các higher-order function.
• Higher-order function là dạng function mà chấp
nhận một function khác như là tham số của nó.
19 trang |
Chia sẻ: lylyngoc | Lượt xem: 1878 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Bài giảng Map Reduce, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
MAP REDUCE
GVHD: TS. Hồ Bảo Quốc
Nhóm học viên thực hiện:
• Dương Hữu Thành – 1212035
• Phạm Ngọc Vân Anh – 1212001
• Nguyễn Thanh Tòng – 1212039
Nội dung
• Giới thiệu Map Reduce
• Ví dụ cụ thể
• Kiến trúc và cách thức hoạt động
• Khả năng chịu lỗi (Fault Tolerance)
Giới thiệu về Map Reduce
Map Reduce
• Là một mô hình lập trình được đề xuất trong các
ngôn ngữ lập trình hàm như Lisp, ML.
• Một trong những tính năng nổi bật của các ngôn
ngữ lập trình hàm là các higher-order function.
• Higher-order function là dạng function mà chấp
nhận một function khác như là tham số của nó.
Map Reduce (cont.)
• 2 higher-oder function được dùng nhiều trong
Lisp là map and fold.
• Map và fold thường được dùng kết hợp với nhau
Map Reduce (cont.)
map và fold trong Lisp
• (map square ‘(1 2 3 4))
▫ (1 4 9 16)
• (reduce + ‘(1 4 9 16))
▫ 30
Map Reduce (cont.)
Map và reduce do Goole đề xuất
• map(key, val)
▫ Tạo ra new-key / new-val pairs
• reduce(key, vals)
▫ Tạo ra kết quả cuối cùng
▫ Với key/vals là giá trị tạo ra bởi map function.
Map Reduce (cont.)
VÍ DỤ CỤ THỂ
Đếm số lần xuất hiện của mỗi từ trong
tập các documents
Đếm số lần xuất hiện của mỗi từ trong
tập các documents (cont.)
KIẾN TRÚC VÀ CÁCH THỨC
HOẠT ĐỘNG
Kết hợp giữ Map/Reduce và GFS
• Cách worker lấy dữ liệu để xử lý?
▫ Dữ liệu cần truy xuất lớn.
▫ Không đủ memory để load tất cả dữ liệu
• Giải pháp:
▫ Don’t move data to workers… Move workers to the
data!
▫ Worker sẽ được khởi động trên các chunk server đã
có sẵn dữ liệu.
FAULT TOLERANCE
Worker Failure
• Master định kỳ ping worker để phát hiện failure.
• Nếu một task nào đó thất bại, master chọn một
worker khác để thực hiện lại task.
Master Failure
• Tất cả các map/reduce task sẽ thất bại
• Giải pháp:
▫ Đặt các checkpoint để có thể khởi động lại tại các
checkpoint đó.
Tài liệu tham khảo
• Data-Intensive Text Processing with MapReduce -
Jimmy Lin The iSchool University of Maryland.
• MapReduce: Simplified Data Processing on Large
Clusters - Jeffrey Dean and Sanjay Ghemawat Google Inc
Q&A