MapReduce trong Hadoop là gì

MapReduce trong Hadoop là gì?

MapReduce là một khuôn khổ phần mềm và mô hình lập trình được sử dụng để xử lý một lượng lớn dữ liệu. Chương trình MapReduce hoạt động trong hai giai đoạn, đó là Map và reduce. Các tác vụ Map giải quyết việc chia nhỏ và ánh xạ dữ liệu trong khi reduce tác vụ xáo trộn và reduce dữ liệu.

Hadoop có khả năng chạy các chương trình MapReduce được viết bằng nhiều ngôn ngữ khác nhau: Java, Ruby, Python và C ++. Các chương trình của Map Reduce trong điện toán đám mây có tính chất song song, do đó rất hữu ích để thực hiện phân tích dữ liệu quy mô lớn sử dụng nhiều máy trong cụm.

Đầu vào cho mỗi pha là các cặp key-value . Ngoài ra, mọi lập trình viên cần xác định hai chức năng: map function  và  reduce function

Giải thích chi tiết về Kiến trúc MapReduce trong Dữ liệu lớn

Toàn bộ quá trình trải qua bốn giai đoạn thực hiện là chia tách, ánh xạ, xáo trộn và reduce bớt.

Bây giờ trong hướng dẫn MapReduce này, chúng ta hãy hiểu với một ví dụ về MapReduce–

Hãy xem xét bạn có dữ liệu đầu vào sau cho Chương trình MapReduce trong Big Data

Chào mừng bạn đến với Hadoop Lớp 

Hadoop tốt 

Hadoop xấu

Kiến trúc MapReduce

Kết quả cuối cùng của tác vụ MapReduce là

bad 1
Class 1
good 1
Hadoop 3
is 2
to 1
Welcome 1

Dữ liệu trải qua các giai đoạn sau của MapReduce trong Dữ liệu lớn

Tách đầu vào:

Đầu vào cho một công việc MapReduce trong Dữ liệu lớn được chia thành các phần có kích thước cố định được gọi là  phần tách đầu vào Phần chia  đầu vào là một phần của đầu vào được sử dụng bởi một Map

Lập Map

Đây là giai đoạn đầu tiên trong quá trình thực hiện chương trình thu nhỏ Map. Trong giai đoạn này, dữ liệu trong mỗi lần tách được chuyển đến một hàm ánh xạ để tạo ra các giá trị đầu ra. Trong ví dụ của chúng tôi, công việc của giai đoạn ánh xạ là đếm một số lần xuất hiện của mỗi từ từ các phần tách đầu vào (chi tiết hơn về phần tách đầu vào được đưa ra bên dưới) và chuẩn bị một danh sách ở dạng <từ, tần suất>

Xáo trộn

Giai đoạn này tiêu thụ đầu ra của giai đoạn Ánh xạ. Nhiệm vụ của nó là hợp nhất các bản ghi có liên quan từ đầu ra của giai đoạn Lập Map. Trong ví dụ của chúng tôi, các từ giống nhau được ghép lại với nhau cùng với tần suất tương ứng của chúng.

reduce

Trong giai đoạn này, các giá trị đầu ra từ giai đoạn Ngẫu nhiên được tổng hợp. Giai đoạn này kết hợp các giá trị từ giai đoạn xáo trộn và trả về một giá trị đầu ra duy nhất. Tóm lại, giai đoạn này tóm tắt toàn bộ tập dữ liệu.

Trong ví dụ của chúng tôi, giai đoạn này tổng hợp các giá trị từ giai đoạn Xáo trộn, tức là, tính toán tổng số lần xuất hiện của mỗi từ.

MapReduce Architecture giải thích chi tiết

  • Một tác vụ Map được tạo cho mỗi phần tách, sau đó thực thi chức năng Map cho mỗi bản ghi trong phần tách.
  • Luôn luôn có lợi khi có nhiều phần tách vì thời gian cần để xử lý một phần nhỏ hơn so với thời gian thực hiện để xử lý toàn bộ đầu vào. Khi các phần tách nhỏ hơn, quá trình xử lý sẽ tốt hơn để cân bằng tải vì chúng tôi đang xử lý các phần tách song song.
  • Tuy nhiên, cũng không nên mong muốn có các vết chia có kích thước quá nhỏ. Khi các phần tách quá nhỏ, sự quá tải của việc quản lý các phần tách và tạo tác vụ Map bắt đầu chi phối tổng thời gian thực hiện công việc.
  • Đối với hầu hết các công việc, tốt hơn nên tạo kích thước chia nhỏ bằng kích thước của khối HDFS (theo mặc định là 64 MB).
  • Việc thực thi các tác vụ Map dẫn đến việc ghi đầu ra vào đĩa cục bộ trên nút tương ứng chứ không phải HDFS.
  • Lý do chọn đĩa cục bộ trên HDFS là để tránh sao chép diễn ra trong trường hợp hoạt động của cửa hàng HDFS.
  • Đầu ra Map là đầu ra trung gian được xử lý bằng các tác vụ reduce để tạo ra đầu ra cuối cùng.
  • Khi công việc hoàn thành, đầu ra Map có thể bị vứt bỏ. Vì vậy, lưu trữ nó trong HDFS với sự sao chép trở nên quá mức cần thiết.
  • Trong trường hợp nút bị lỗi, trước khi tác vụ thu gọn sử dụng đầu ra Map, Hadoop sẽ chạy lại nhiệm vụ Map trên một nút khác và tạo lại đầu ra Map.
  • Tác vụ reduce không hoạt động trên khái niệm địa phương dữ liệu. Đầu ra của mọi tác vụ Map được cấp cho tác vụ thu gọn. Đầu ra Map được chuyển đến máy nơi tác vụ reduce đang chạy.
  • Trên máy này, đầu ra được hợp nhất và sau đó được chuyển đến hàm reduce do người dùng xác định.
  • Không giống như đầu ra Map, đầu ra reduce được lưu trữ trong HDFS (bản sao đầu tiên được lưu trữ trên nút cục bộ và các bản sao khác được lưu trữ trên các nút ngoài giá đỡ). Vì vậy, viết reduce sản lượng

MapReduce tổ chức hoạt động như thế nào?

Bây giờ trong hướng dẫn MapReduce này, chúng ta sẽ tìm hiểu cách hoạt động của MapReduce

Hadoop chia công việc thành các nhiệm vụ. Có hai loại nhiệm vụ:

  1. Map  (Tách & Lập Map)
  2. reduce (xáo trộn, reduce)

như đã đề cập ở trên.

Quá trình thực thi hoàn chỉnh (thực hiện các tác vụ Map và Rút gọn, cả hai) được kiểm soát bởi hai loại thực thể được gọi là

  1. Jobtracker : Hoạt động như một  master  (chịu trách nhiệm thực hiện hoàn chỉnh công việc đã nộp)
  2. Nhiều Trình theo dõi Nhiệm vụ : Hành động như  slave,  mỗi người trong số họ thực hiện công việc

Đối với mỗi công việc được gửi để thực thi trong hệ thống, có một  Trình theo dõi công  việc nằm trên  Namenode  và có  nhiều trình theo dõi  tác vụ nằm trên  Datanode .

Cách hoạt động của Hadoop MapReduce

  • Một công việc được chia thành nhiều nhiệm vụ sau đó được chạy trên nhiều nút dữ liệu trong một cụm.
  • Người theo dõi công việc có trách nhiệm điều phối hoạt động bằng cách lên lịch cho các tác vụ chạy trên các nút dữ liệu khác nhau.
  • Việc thực thi nhiệm vụ riêng lẻ sau đó được theo dõi bởi trình theo dõi tác vụ, nằm trên mọi nút dữ liệu đang thực thi một phần của công việc.
  • Trách nhiệm của trình theo dõi công việc là gửi báo cáo tiến độ đến trình theo dõi công việc.
  • Ngoài ra, trình theo dõi nhiệm vụ định kỳ gửi  tín hiệu heartbea đến Trình theo dõi công việc  để thông báo cho anh ta về trạng thái hiện tại của hệ thống. 
  • Do đó, trình theo dõi công việc theo dõi tiến độ tổng thể của từng công việc. Trong trường hợp nhiệm vụ bị lỗi, trình theo dõi công việc có thể lên lịch lại trên một trình theo dõi nhiệm vụ khác.
Check Also
Close
Back to top button