Trong Hadoop này blog, chúng tôi sẽ cung cấp cho bạn phần cuối để kết thúc luồng thực thi công việc MapReduce. Ở đây chúng tôi sẽ mô tả chi tiết từng thành phần là một phần của MapReduce hoạt động.
Blog này sẽ giúp bạn giải đáp cách hoạt động của Hadoop MapReduce, cách dữ liệu lưu chuyển trong MapReduce, cách thực thi công việc Mapreduce trong Hadoop?
MapReduce là gì?
Hadoop MapReduce là lớp xử lý dữ liệu. Nó xử lý một lượng lớn dữ liệu có cấu trúc và phi cấu trúc được lưu trữ trong HDFS. MapReduce xử lý dữ liệu song song bằng cách chia công việc thành tập hợp các tác vụ độc lập. Vì vậy, xử lý song song cải thiện tốc độ và độ tin cậy.
Quá trình xử lý dữ liệu Hadoop MapReduce diễn ra trong 2 giai đoạn - Giai đoạn lập bản đồ và giai đoạn Rút gọn.
- Giai đoạn lập bản đồ- Đây là giai đoạn đầu tiên của quá trình xử lý dữ liệu. Trong giai đoạn này, chúng tôi chỉ định tất cả các logic phức tạp / quy tắc nghiệp vụ / mã tốn kém.
- Giảm giai đoạn- Đây là giai đoạn thứ hai của quá trình xử lý. Trong giai đoạn này, chúng tôi chỉ định xử lý nhẹ như tổng hợp / tổng hợp.
Các bước của luồng thực thi công việc MapReduce
MapReduce xử lý dữ liệu trong các giai đoạn khác nhau với sự trợ giúp của các thành phần khác nhau. Hãy thảo luận về các bước thực hiện công việc trong Hadoop.
1. Tệp đầu vào
Trong tệp đầu vào, dữ liệu cho công việc MapReduce được lưu trữ. Trong HDFS , các tập tin đầu vào cư trú. Định dạng tệp đầu vào là tùy ý. Các tệp nhật ký dựa trên dòng và định dạng nhị phân cũng có thể được sử dụng.
2. Định dạng đầu vào
Sau đó InputFormat xác định cách tách và đọc các tệp đầu vào này. Nó chọn các tệp hoặc các đối tượng khác để đầu vào. InputFormat tạo InputSplit.
3. InputSplits
Nó đại diện cho dữ liệu sẽ được xử lý bởi một Người lập bản đồ cá nhân . Đối với mỗi phần tách, một nhiệm vụ bản đồ được tạo. Vì vậy, số lượng nhiệm vụ bản đồ bằng số lượng InputSplits. Khung phân chia chia thành các bản ghi, quá trình lập bản đồ.
4. RecordReader
Nó giao tiếp với inputSplit. Và sau đó chuyển đổi dữ liệu thành cặp khóa-giá trị thích hợp để Mapper đọc. RecordReader theo mặc định sử dụng TextInputFormat để chuyển đổi dữ liệu thành một cặp khóa-giá trị.
Nó giao tiếp với InputSplit cho đến khi hoàn thành việc đọc tệp. Nó chỉ định độ lệch byte cho mỗi dòng có trong tệp. Sau đó, các cặp khóa-giá trị này được gửi tiếp đến trình ánh xạ để xử lý thêm.
5. Người vẽ bản đồ
Nó xử lý bản ghi đầu vào do RecordReader tạo ra và tạo ra các cặp khóa-giá trị trung gian. Đầu ra trung gian hoàn toàn khác với cặp đầu vào. Đầu ra của trình ánh xạ là tập hợp đầy đủ các cặp khóa-giá trị.
Khung Hadoop không lưu trữ đầu ra của trình ánh xạ trên HDFS. Nó không lưu trữ vì dữ liệu chỉ là tạm thời và việc ghi trên HDFS sẽ tạo ra nhiều bản sao không cần thiết. Sau đó, Mapper chuyển đầu ra cho bộ kết hợp để xử lý thêm.
4. Bộ kết hợp
Combiner là bộ giảm tốc nhỏ thực hiện tổng hợp cục bộ trên đầu ra của trình lập bản đồ. Nó giảm thiểu việc truyền dữ liệu giữa trình ánh xạ và trình giảm thiểu. Vì vậy, khi chức năng bộ kết hợp hoàn thành, khuôn khổ sẽ chuyển đầu ra cho trình phân vùng để xử lý thêm.
5. Người phân vùng
Bộ phân vùng sẽ tồn tại nếu chúng ta đang làm việc với nhiều hơn một bộ giảm tốc. Nó nhận đầu ra của bộ kết hợp và thực hiện phân vùng.
Việc phân vùng đầu ra diễn ra trên cơ sở khóa trong MapReduce. Theo hàm băm, khóa (hoặc một tập hợp con của khóa) dẫn xuất phân vùng.
Trên cơ sở giá trị khóa trong MapReduce, việc phân vùng của từng đầu ra bộ kết hợp sẽ diễn ra. Và sau đó bản ghi có cùng giá trị khóa sẽ đi vào cùng một phân vùng. Sau đó, mỗi phân vùng được gửi đến một trình giảm bớt.
Việc phân vùng trong quá trình thực thi MapReduce cho phép phân phối đồng đều kết quả đầu ra của bản đồ qua trình thu gọn.
6. Trộn và sắp xếp
Sau khi phân vùng, đầu ra được xáo trộn đến nút giảm. Xáo trộn là chuyển động vật lý của dữ liệu được thực hiện qua mạng. Khi tất cả các trình ánh xạ kết thúc và xáo trộn đầu ra trên các nút giảm tốc.
Sau đó, khung công tác kết hợp đầu ra trung gian này và sắp xếp. Sau đó, điều này được cung cấp làm đầu vào để giảm giai đoạn.
7. Hộp giảm tốc
Sau đó, Reducer lấy tập hợp các cặp khóa-giá trị trung gian do người lập bản đồ tạo ra làm đầu vào. Sau đó, chạy một chức năng giảm thiểu trên mỗi người trong số họ để tạo ra đầu ra.
Đầu ra của bộ giảm tốc là đầu ra cuối cùng. Sau đó, khung công tác lưu trữ đầu ra trên HDFS.
8. RecordWriter
Nó ghi cặp khóa-giá trị đầu ra này từ giai đoạn Giảm tốc vào các tệp đầu ra.
9. Định dạng đầu ra
OutputFormat xác định cách RecordReader ghi các cặp khóa-giá trị đầu ra này trong các tệp đầu ra. Vì vậy, các phiên bản của nó được cung cấp bởi Hadoop ghi tệp trong HDFS. Do đó, các cá thể OutputFormat ghi đầu ra cuối cùng của bộ giảm tốc trên HDFS.
Kết luận
Chúng ta đã tìm hiểu từng bước quy trình thực thi công việc của MapReduce. Tôi hy vọng blog này sẽ giúp bạn rất nhiều để hiểu MapReduce hoạt động.
Nếu vẫn còn, bạn có bất kỳ câu hỏi nào liên quan đến luồng thực thi công việc MapReduce, bạn có thể chia sẻ với chúng tôi trong phần bình luận bên dưới. Chúng tôi sẽ cố gắng hết sức để giải quyết chúng.