MapReduce trong Hadoop là gì? Dữ liệu lớn Archikiến trúc
MapReduce trong Hadoop là gì?
Bản đồGiảm là một khung phần mềm và mô hình lập trình được sử dụng để xử lý lượng dữ liệu khổng lồ. Bản đồGiảm chương trình hoạt động theo hai giai đoạn, cụ thể là Bản đồ và Giảm. Các tác vụ ánh xạ xử lý việc phân tách và ánh xạ dữ liệu trong khi các tác vụ Giảm 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: Javahồng ngọc, Pythonvà C++. Các chương trình Map Reduce trong điện toán đám mây có bản chất song song, do đó rất hữu ích khi thực hiện phân tích dữ liệu quy mô lớn bằng nhiều máy trong cụm.
Đầu vào của mỗi giai đoạn là giá trị cốt lõi cặp. Ngoài ra, mỗi lập trình viên cần chỉ định hai chức năng: chức năng bản đồ và chức năng giảm.
Bản đồGiảm Archikiến trúc trong Dữ liệu lớn được giải thích bằng Ví dụ
Toàn bộ quá trình trải qua bốn giai đoạn thực hiện là tách, ánh xạ, xáo trộn và thu gọn.
Bây giờ trong hướng dẫn MapReduce này, hãy cùng tìm hiểu bằng ví dụ MapReduce–
Hãy xem xét bạn có dữ liệu đầu vào sau cho MapReduce của bạn trong Chương trình dữ liệu lớn
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Đầu ra cuối cùng của tác vụ MapReduce là
xấu | 1 |
Lớp | 1 |
tốt | 1 |
Hadoop | 3 |
is | 2 |
đến | 1 |
Chào mừng | 1 |
Dữ liệu trải qua các giai đoạn sau của MapReduce trong Big Data
Phân chia đầu vào:
Đầu vào cho 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 chia đầu vào Phân chia đầu vào là một phần đầ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 map-reduce. Trong giai đoạn này, dữ liệu trong mỗi lần phân chia được truyề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 lần phân chia đầu vào (chi tiết hơn về input-split được đưa ra bên dưới) và chuẩn bị một danh sách dưới 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, những từ giống nhau được ghép lại với nhau theo 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 Xáo trộ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. Nói tóm lại, giai đoạn này tóm tắt bộ dữ liệu hoàn chỉnh.
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ừ.
Bản đồGiảm Archikiến trúc đượ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 từng bản ghi trong phần tách.
- Việc phân tách nhiều lần luôn có lợi vì thời gian xử lý phân tách nhỏ so với thời gian xử lý toàn bộ đầu vào. Khi các phần tách nhỏ hơn, quá trình xử lý sẽ cân bằng tải tốt hơn vì chúng ta đang xử lý các phần tách song song.
- Tuy nhiên, việc chia kích thước quá nhỏ cũng không được mong muốn. Khi các phần phân chia quá nhỏ, tình trạng quá tải trong việc quản lý các phần phân chia và tạo tác vụ bản đồ bắt đầu chiếm ưu thế trong 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 phân chia 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 vào HDFS.
- Lý do chọn đĩa cục bộ thay vì HDFS là để tránh việc sao chép xảy ra trong trường hợp cửa hàng HDFS hoạt động.
- Đầu ra bản đồ là đầu ra trung gian được xử lý bằng các tác vụ rút gọn để tạo ra đầu ra cuối cùng.
- Sau khi công việc hoàn thành, đầu ra bản đồ có thể bị vứt đi. Vì vậy, việc lưu trữ nó trong HDFS với bản sao sẽ 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ụ rút gọn sử dụng đầu ra bản đồ, Hadoop sẽ chạy lại tác vụ bản đồ trên một nút khác và tạo lại đầu ra bản đồ.
- Giảm tác vụ không hoạt động trên khái niệm về vị trí dữ liệu. Đầu ra của mọi tác vụ bản đồ được đưa vào tác vụ rút 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 rút gọn 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 đầu ra giảm
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 MapReduce hoạt động
Hadoop chia công việc thành các nhiệm vụ. Có hai loại nhiệm vụ:
- Nhiệm vụ bản đồ (Tách & ánh xạ)
- Giảm nhiệm vụ (Xáo trộn, Giảm)
Như được đề cập ở trên.
Quá trình thực thi hoàn chỉnh (thực thi cả hai nhiệm vụ Map và Giảm) được kiểm soát bởi hai loại thực thể được gọi là
- Trình theo dõi việc làm: Hoạt động như một chủ (chịu trách nhiệm thực hiện hoàn thành công việc được giao)
- Nhiều Trình theo dõi tác vụ: Hoạt độ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 việc làm cư trú trên nút tên và có nhiều trình theo dõi tác vụ cư trú trên Nút dữ liệu.
- Một công việc được chia thành nhiều tác vụ, sau đó chúng đượ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 các tác vụ để chạy trên các nút dữ liệu khác nhau.
- Sau đó, việc thực thi tác vụ riêng lẻ sẽ đượ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 thực thi một phần công việc.
- Trách nhiệm của người theo dõi công việc là gửi báo cáo tiến độ cho người theo dõi công việc.
- Ngoài ra, trình theo dõi tác vụ sẽ gửi định kỳ 'nhịp tim' gửi tín hiệu tới Người 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 sẽ theo dõi tiến độ chung 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 tác vụ khác.