Mapreduce là gì? Tìm hiểu mô hình lập trình Mapreduce

Trong bài viết này HTTL sẽ cùng những bạn điều tra và nghiên cứu về một trong những thành phần quan trọng giúp nâng cao Hadoop là Mapreduce. Vậy MapReduce là gì ? Mapreduce hoạt động giải trí như thế nào ? Các hàm chính của nó là gì ? Tất cả những kỹ năng và kiến thức trên sẽ được tổng hợp trong bài viết dưới đây .

1. MapReduce là gì?

MapReduce là quy mô độc quyền được phong cách thiết kế bởi Google, nó có năng lực lập trình để giải quyết và xử lý những tập dữ liệu lớn song song và phân tán thuật toán trên mọt cụm máy tính. MapReduce đã trở thành một trong những thành ngữ tổng quát hóa trong thời hạn gần đây .
MapReduce sẽ gồm có những thủ tục 1 Map ( ) và 1 Reduce ( ). Thủ tục Map ( ) gồm có lọc ( filter ) và phân loại ( sort ) trên tài liệu khi thủ tục Reduce ( ) thực thi tổng hợp tài liệu. Đây là quy mô dựa vào khái niệm biển đối của map và reduce tính năng lập trình theo hướng tính năng. Thư viện của thủ tục Map ( ) và thủ tục Reduce ( ) được viết bằng nhiều loại ngôn từ khác nhau. Tuy nhiên, thủ tục hoàn toàn có thể thiết lập không tính tiền và được sử dụng thông dụng nhất Apache Hadoop .

Định nghĩa Mapreduce là gì?

2. Các hàm chính của MapReduce

MapReduce gồm có 2 hàm chính là Map ( ) và Reduce ( ). Đây là 2 hàm đã được định nghĩa bởi người dùng và nó cũng là 2 quá trình liên tục trong quy trình giải quyết và xử lý tài liệu MapReduce. Cụ thể, trách nhiệm của từng hàm là :

  • Hàm Map ( ) : Nhận Input cho những cặp giá trị / khóa và output là tập những cặp giá trị / khóa trung gian. Sau đó, chỉ cần bạn ghi vào đĩa cứng và triển khai thông tin cho những hàm Reduce ( ) trực tiếp nhận tài liệu .
  • Hàm Reduce ( ) : có trách nhiệm đảm nhiệm từ khóa trung gian và những giá trị tương ứng với từ khóa đó. Sau đó, triển khai ghép chúng lại để hoàn toàn có thể tạo thành một tập từ khóa khác nhau. Các cặp khóa / giá trị này thường sẽ trải qua con trỏ vị trí để đưa vào những hàm reduce. Quá trình này giúp cho lập trình viên quản trị thuận tiện hơn một lượng list cũng như phân chia giá trị sao cho tương thích với bộ nhớ mạng lưới hệ thống .
  • Ở giữa Map và Reduce còn một bước trung gian đó chính là Shuffle. Sau khi Map hoàn thành xong việc làm của mình thì Shuffle sẽ làm trách nhiệm chính là tích lũy cũng như tổng hợp khóa / giá trị trung gian đã được map sinh ra trước đó và chuyển qua cho Reduce liên tục giải quyết và xử lý .

Các hàm của Mapreduce 

3. Các ưu điểm nổi bật của MapReduce

Mapreduce được yêu thích bởi chiếm hữu nhiều ưu điểm tiêu biểu vượt trội như :

  • MapReduce giải quyết và xử lý thuận tiện mọi bài toán có lượng tài liệu lớn nhờ năng lực tác vụ nghiên cứu và phân tích và đo lường và thống kê phức tạp. Nó hoàn toàn có thể giải quyết và xử lý nhanh gọn và cho ra hiệu quả thuận tiện chỉ trong khoảng chừng thời hạn ngắn .
  • Mapreduce hoàn toàn có thể chạy song song trên những máy có sự phân tán khác nhau. Với năng lực hoạt động giải trí độc lập tích hợp phân tán và giải quyết và xử lý những lỗi kỹ thuật để mang lại hiệu suất cao tối ưu cho toàn mạng lưới hệ thống .
  • MapRedue thực thi được trên nhiều nguồn ngôn từ lập trình khác nhau như : Java, C / C + +, Perl, Python, Ruby, … tương ứng với nó là những thư viện tương hỗ .
  • Mã độc trên Internet ngày càng nhiều nên việc giải quyết và xử lý những đoạn mã độc này cũng trở nên phức tạp và tốn thời hạn. Chính vì thế, những ứng dụng MapReduce dần hướng đến sự phát hiện những mã độc để hoàn toàn có thể giải quyết và xử lý chúng. Nhờ vậy, mạng lưới hệ thống mới hoàn toàn có thể quản lý và vận hành trơn tru và bảo mật thông tin tối đa .

Mapreduce có khả năng xử lý nhanh chóng lượng dữ liệu lớn

4. MapReduce hoạt động như thế nào?

4.1  Nguyên tắc hoạt động 

Mapreduce hoạt động giải trí dựa vào nguyên tắc “ Chia để trị ” :

  • Phân chia tài liệu cần giải quyết và xử lý thành nhiều phần nhỏ khác nhau trước khi thực thi
  • Xử lý những yếu tố nhỏ theo phương pháp song song trên những máy tính và phân tán hoạt động giải trí theo hướng độc lập
  • Tiến hành tổng hợp hiệu quả thu được để đưa ra được hiệu quả ở đầu cuối .

4.2. Các bước hoạt động

  • Bước 1 : Chuẩn bị những tài liệu nguồn vào để cho Map ( ) giải quyết và xử lý
  • Bước 2 : Lập trình viên thực thi những mã Map ( ) để giải quyết và xử lý
  • Bước 3 : Tiến hành trộn những tài liệu được xuất ra bởi Map ( ) vào Reduce Processor
  • Bước 4: Tiến hành thực hiện tiếp mã Reduce() để xử lý tiếp các dữ liệu cần thiết

  • Bước 5 : Thực hiện tạo tài liệu xuất ra ở đầu cuối .

4.3. Luồng dữ liệu nền tảng

  • Input Reader
  • Map Function
  • Partition Function
  • Compare Function
  • Reduce Function
  • Output Writer

Ví dụ về tiến trình hoạt động của Mapreduce

4.4. Ví dụ về hoạt động của MapReduce điển hình

  • Theo sơ đồ phía trên, người dùng sẽ triển khai nhập tài liệu và những tài liệu đều sẽ được chia nhỏ từ 16MB đến 64MB. Sau đó, mạng lưới hệ thống sẽ thực thi khởi động việc sao chép trên clusters .
  • Hầu hết những máy đều có năng lực thực thi giải quyết và xử lý những tài liệu gồm có master và worker. Trong số đó, máy master sẽ có trách nhiệm điều phối hoạt động giải trí bên trong quy trình thực thi. Các máy worker sau khi nhận tài liệu sẽ thực thi những trách nhiệm Map và Reduce. Khi worker đã triển khai xong việc làm thì hiệu quả đầu ra sẽ Open những cặp khóa và giá trị trung gian, những cặp này sẽ được lưu trong thời điểm tạm thời vào bộ nhớ đệm bên trong mạng lưới hệ thống .
  • Nếu như Map thành công xuất sắc, những worker sẽ thực thi những trách nhiệm tiếp theo như là phân loại máy trung gian thành nhiều vùng khác nhau và lưu chúng xuống đĩa rồi trả hiệu quả ngược lại gồm có vị trí tàng trữ cho máy master biết .
  • Khi đã nhận được thông tin từ worker, những máy master sẽ hoàn toàn có thể gán những giá trị trung gian và vị trí tệp tài liệu cho máy triển khai việc làm Reduce. Hầu hết, những máy sẽ nhận trách nhiệm giải quyết và xử lý hàm Reduce sau đó mới giải quyết và xử lý những key, giá trị để đưa ra hiệu quả ở đầu cuối .
  • Sau khi quy trình MapReduce đã hoàn tất, những máy master sẽ được kích hoạt tính năng thông tin cho lập trình viên. Khi hiệu quả đầu ra đã được lưu trên mạng lưới hệ thống thì người dùng hoàn toàn có thể sử dụng chúng cũng như quản trị và sao lưu thuận tiện hơn .

5. Ứng dụng MapReduce

Rất nhiều công việc có thể ứng dụng Mapreduce

MapReduce được ứng dụng trong thống kê hàng loạt những số liệu đơn cử như thể :

  • Thực hiện thống kê cho những từ khóa Open trong những tài liệu, văn bản, bài viết hoặc được update trên mạng lưới hệ thống website, fanpage, …
  • Khi số lượng bài viết đã được thống kê thì tài liệu sẽ có chứa sẵn những từ khóa đó
  • Có thể thống kê được câu lệnh match, pattern bên trong những tài liệu
  • Thống kê được số lượng URLs xuất hiện bên trong một webpages 

  • Thống kê được số lượt truy vấn của người mua sao cho tương ứng với những URLs
  • Thống kê được tổng thể từ khóa trên website, hostname, …

Trên đây là 1 số ít san sẻ về Mapreduce cũng như những thông tin khác về MapReduce. Hy vọng rằng, bài viết này đã mang lại được cho bạn đọc những kiến thức và kỹ năng có ích .