MapReduce trong Hadoop là gì? Kiến trúc - Thí dụ

Mục lục:

Anonim

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 theo hai giai đoạn, đó là Bản đồ và Giảm. Các tác vụ bản đồ giải quyết việc chia nhỏ và ánh xạ dữ liệu trong khi Giảm tác vụ xáo trộn và giảm 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 khóa-giá trị . Ngoài ra, mọi lập trình viên cần xác định hai chức năng: chức năng ánh xạchức năng giảm thiểu .

Trong hướng dẫn Hadoop MapReduce cho người mới bắt đầu này, bạn sẽ học-

  • MapReduce trong Hadoop là gì?
  • Giải thích chi tiết về Kiến trúc MapReduce trong Dữ liệu lớn
  • Kiến trúc MapReduce được giải thích chi tiết
  • MapReduce tổ chức hoạt động như thế nào?

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à giảm bớt.

Bây giờ trong hướng dẫn MapReduce này, chúng ta hãy hiểu bằng 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

Welcome to Hadoop ClassHadoop is goodHadoop is bad

Kiến trúc MapReduce

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

xấu 1
Lớp học 1
tốt 1
Hadoop 3
2
đến 1
Chào mừng 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 bản đồ

Lập bản đồ

Đây là giai đoạn đầu tiên trong quá trình thực hiện chương trình thu nhỏ bản đồ. 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 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

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 liên quan từ đầu ra của giai đoạn Lập bản đồ. 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.

Giảm

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ừ.

Kiến trúc MapReduce được giải thích chi tiết

  • Một tác vụ bản đồ được tạo cho mỗi phần tách, sau đó thực thi chức năng bản đồ 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 cần để xử lý toàn bộ đầu vào. Khi các phần chia nhỏ hơn, quá trình xử lý sẽ tốt hơn để cân bằng tải vì chúng ta đ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ụ bản đồ 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 là 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ụ bản đồ 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 bản đồ là đầu ra trung gian được xử lý bằng các tác vụ giảm để tạo ra đầu ra cuối cùng.
  • Khi công việc hoàn thành, đầu ra bản đồ 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 bản đồ, Hadoop sẽ chạy lại nhiệm vụ bản đồ trên một nút khác và tạo lại đầu ra bản đồ.
  • Tác vụ giảm 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ụ bản đồ được cấp cho tác vụ thu gọn. Đầu ra bản đồ được chuyển đến máy nơi tác vụ giảm đang chạy.
  • Trên máy này, đầu ra được hợp nhất và sau đó được chuyển đến hàm giảm do người dùng xác định.
  • Không giống như đầu ra bản đồ, đầu ra giảm đượ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 giảm đầu ra

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. Nhiệm vụ bản đồ (Tách & Lập bản đồ)
  2. Giảm tác vụ (xáo trộn, giảm)

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

Quá trình thực thi hoàn chỉnh (thực hiện cả hai tác vụ Bản đồ và Rút gọn) đượ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 bậc thầy (chịu trách nhiệm thực hiện hoàn thành công việc đã nộp)
  2. Nhiều Trình theo dõi Nhiệm vụ : Hành động như nô lệ, 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 'nhịp tim' đế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.