Ứng dụng của MapReduce

Một phần của tài liệu Tiểu luận môn điện toán lưới và đám mây XỬ LÝ DỮ LIỆU PHÂN TÁN VỚI HADOOP MAPREDUCE (Trang 37)

MapReduce không phải là mô hình áp dụng được cho tất cả mọi vấn đề. Thực tế, mô hình MapReduce áp dụng tốt được cho các trường hợp cần xử lý một khối dữ liệu lớn bằng cách chia nó ra thành các mảnh nhỏ hơn và xử lý song song.

Một số trường hợp sau sẽ thích hợp với MapReduce:

• Dữ liệu cần xử lý lớn, kích thước tập tin lớn.

• Các ứng dụng thực hiện xử lý, phân tích dữ liệu, thời gian xử lý đáng kể, có thể tính bằng phút, giờ, ngày, tháng..

• Cần tối ưu hoá về băng thông trên cluster. Một số trường hợp có thể không phù hợp:

• Dữ liệu cần xử lý là tập hợp nhiều tập tin nhỏ.

• Cần tìm kiếm nhanh (tốc độ có ý nghĩa đến từng giây) trên tập dữ liệu lớn. Do độ trễ khi xử lý các MapReduce Job và khởi tạo các task trên DataNode.

Sau đây là một số bài toán tiêu biểu:

Đối với Last.fm, Last.fm là một trang web hàng đầu về nghe nhạc cũng như các tiện ích bên cạnh. Với dữ liệu cực kỳ lớn và việc phải xử lý định kỳ theo ngày hoặc theo tuần trên dữ liệu lớn này để cho ra dữ liệu thống kê của các bài hát như thống kê lại số lượng người dùng đã nghe một bài hát kèm theo là số lần bài hát này được nghe bằng radio hoặc nghe trực tuyến. Do đó, Last.fm đã tiếp cận tới Hadoop và với Hadoop MapReduce làm tâm điểm cho việc thực hiện các xử lý thống kê trên.

Đối với Nutch, Nutch sử dụng Hadoop như thành phần chính trong nó. Chức năng chính yếu của nutch như là web crawler. Do đó dữ liệu sẽ trở nên rất lớn và quá trình crawl diễn ra theo nhiều bước liên tiếp. Và Nutch đã lựa chọn Hadoop MapReduce làm mô hình để thực hiện xử lý các thao tác trong quá trình crawl của mình. Dưới đây là minh họa về bài toán tạo tập inverted index trong quá trình crawl. Với dữ liệu input là tập các record với key là docID (định danh của một tài liệu) và value là content (toàn bộ nội dung của tài liệu). Từng record của dữ liệu output có cấu trúc như sau: key là wordID (định danh của một từ) và danh sách docID (danh sách tài liệu mà có chứa từ đó). Để biết được

MapReduce thực hiện như thế nào, chúng ta cần quan tâm đến hàm map và hàm reduce. Hàm map ứng với từng record là (docId, content) nó sẽ trả về cácrecord output (wordId, docID). Với các output của hàm map, thì hệ thống sẽ gom nhóm các record có cùng wordId thành các record có cấu trúc là (wordID, danh sách các docID). Và các record này cũng là dữ liệu inverted index mà không cần đến việc thực hiện hàm reduce.

Một phần của tài liệu Tiểu luận môn điện toán lưới và đám mây XỬ LÝ DỮ LIỆU PHÂN TÁN VỚI HADOOP MAPREDUCE (Trang 37)