Big Data I. Mô hình lập trình MapReduce cho Bigdata



tải về 382.36 Kb.
Chế độ xem pdf
trang1/6
Chuyển đổi dữ liệu29.02.2024
Kích382.36 Kb.
#56658
  1   2   3   4   5   6
Li thuyet Hadoop



Big Data
I. Mô hình lập trình MapReduce cho Bigdata
MapReduce là một kỹ thuật xử lý và là một mô hình lập trình cho tính toán phân tán để triển khai 
và xử lý dữ liệu lớn. MapReduce chứa 2 tác vụ quan trọng là map và reduce. WordCount là một ví 
dụ điển hình cho MapReduce mà sẽ được mình minh họa trong bài viết này
Tại sao Mapreduce lại ra đời?
Như phần giới thiệu thì ai cũng biết là MapReduce là viết gộp lại của map và reduce là 2 hàm chính
trong phương pháp lập trình này. Mô hình lập trình này bắt nguồn chính là từ Google, hay rõ ràng 
hơn là từ 1 bài báo của Google. Vấn đề đặt ra là cần phải song song hóa các tính toán, phân tán dữ 
liệu và phải có khả năng chịu lỗi cao.
MapReduce đơn giản và mạnh mẽ cho phép tự động song song hóa và phân phối các phép tính quy 
mô lớn, kết hợp với việc triển khai mô hình lập trình này để đạt được hiệu suất cao trên các cụm 
máy tính lớn hàng trăm, hàng nghìn máy tính.
Mô hình lập trình
Mô hình của mapreduce phải nói là cực kì đơn giản và dễ hình dung. Lập trình viên sẽ chỉ phải viết 
lại 2 hàm trong mô hình lập trình MapReduce là hàm map và hàm reduce.
Ví dụ WordCount
WordCount là một bài toán kinh điển để minh họa cho MapReduce, ý tưởng của MapReduce được 
viết giống với đoạn mã giả sau:

Ví dụ bây giờ chúng ta cần thực hiện 1 task là đếm số lần xuất hiện của mỗi từ trong 1 văn 
bản. Đầu tiên chúng ta sẽ chia tách văn bản đó thành các dòng, mỗi dòng sẽ được đánh 1 số 
thứ tự. Đầu vào của hàm Map sẽ là các cặp key/value chính là số thứ tự dòng / đoạn văn bản 
trên dòng đó.

Trong Map chúng ta sẽ xử lý tách từng từ trong 1 dòng ra và gán cho chúng giá trị tần suất 
suất hiện ban đầu là 1.

Sẽ có một tiến trình ở giữa giúp việc gộp các output đầu ra của Map có cùng key với nhau 
thành 1 mảng các giá trị.

Đầu vào của Reduce sẽ là cặp key/value là từ / và 1 mảng là tần suất xuất hiện của từ đó. 
Trong Reduce chúng ta chỉ cần thực hiện cộng các giá trị trong mảng và đưa ra kết quả 
chính là số lần xuất hiện của từng từ trong văn bản đầu vào.
Để hình dung rõ hơn, bạn có thể xem hình ảnh sau:


Khi lập trình MapReduce các input, output cho 2 hàm Map và Reduce là thứ mà lập trình viên phải 
xác định trước khi làm. Đối với bài WordCount có vẻ đơn giản, nhưng trong các bài toán phức tạp 
hơn việc đưa về mô hình MapReduce chưa hẳn là đã dễ.

tải về 382.36 Kb.

Chia sẻ với bạn bè của bạn:
  1   2   3   4   5   6




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương