Mục lục:
- Bản đồ có hai khả năng bổ sung để giải quyết các câu hỏi. Do bản đồ và giảm nhu cầu làm việc cùng nhau để xử lý dữ liệu của bạn, chương trình cần phải thu thập dữ liệu từ những người lập bản đồ độc lập và chuyển nó tới bộ phận giảm thiểu. Công việc này được thực hiện bởi một OutputCollector. Một chức năng Reporter cũng cung cấp thông tin thu thập được từ các tác vụ bản đồ để bạn biết khi nào hoặc nếu các công việc bản đồ hoàn tất.
- Hadoop cung cấp một tính năng OutputFormat, và nó hoạt động rất giống InputFormat. OutputFormat lấy cặp khóa-giá trị và sắp xếp đầu ra để ghi vào HDFS. Nhiệm vụ cuối cùng là thực sự ghi dữ liệu lên HDFS. Điều này được thực hiện bởi RecordWriter, và nó thực hiện tương tự như RecordReader trừ ngược lại. Cần dữ liệu OutputFormat và ghi nó lên HDFS dưới dạng cần thiết cho các yêu cầu của chương trình.
Video: Joel Selanikio: The surprising seeds of a big-data revolution in healthcare 2025
Để hiểu đầy đủ các khả năng của Hadoop MapReduce, điều quan trọng là phải phân biệt giữa MapReduce (thuật toán) thực hiện MapReduce. Hadoop MapReduce là một triển khai các thuật toán được phát triển và duy trì bởi dự án Apache Hadoop.
Thật hữu ích khi nghĩ về việc triển khai này như là một công cụ MapReduce, bởi vì đó chính là cách nó hoạt động. Bạn cung cấp đầu vào (nhiên liệu), động cơ chuyển đổi đầu vào vào đầu ra một cách nhanh chóng và hiệu quả, và bạn nhận được câu trả lời bạn cần.
Hadoop MapReduce bao gồm nhiều giai đoạn, mỗi bộ có một bộ các hoạt động quan trọng giúp bạn đạt được mục tiêu nhận được những câu trả lời cần thiết từ những dữ liệu lớn. Quá trình này bắt đầu với yêu cầu của người dùng để chạy một chương trình MapReduce và tiếp tục cho đến khi kết quả được ghi lại vào HDFS.
HDFS và MapReduce thực hiện công việc của họ trên các nút trong một cụm được lưu trữ trên các kệ máy chủ hàng hóa. Để đơn giản hóa quá trình thảo luận, sơ đồ chỉ hiển thị hai nút.
Sau đó, nó chỉ định một RecordReader để chuyển đổi các dữ liệu thô để xử lý bằng bản đồ. Một số loại RecordReaders được cung cấp với Hadoop, cung cấp nhiều lựa chọn chuyển đổi. Tính năng này là một trong những cách mà Hadoop quản lý rất nhiều loại dữ liệu được tìm thấy trong các vấn đề dữ liệu lớn.
Để bắt đầu bản đồ dữ liệu lớnDữ liệu của bạn hiện ở dạng chấp nhận được đối với bản đồ. Đối với mỗi cặp đầu vào, một trường hợp riêng biệt của bản đồ được gọi để xử lý dữ liệu. Nhưng nó làm gì với sản lượng đã được xử lý, và làm thế nào bạn có thể theo dõi chúng?
Bản đồ có hai khả năng bổ sung để giải quyết các câu hỏi. Do bản đồ và giảm nhu cầu làm việc cùng nhau để xử lý dữ liệu của bạn, chương trình cần phải thu thập dữ liệu từ những người lập bản đồ độc lập và chuyển nó tới bộ phận giảm thiểu. Công việc này được thực hiện bởi một OutputCollector. Một chức năng Reporter cũng cung cấp thông tin thu thập được từ các tác vụ bản đồ để bạn biết khi nào hoặc nếu các công việc bản đồ hoàn tất.
Tất cả công việc này đang được thực hiện trên nhiều nút trong cùng một cluster Hadoop.Bạn có thể có các trường hợp cần phải tích lũy kết quả từ các quy trình lập bản đồ nhất định trước khi các bộ phận giảm tốc có thể bắt đầu. Hoặc, một số kết quả trung gian có thể cần được xử lý trước khi giảm.
Ngoài ra, một số đầu ra này có thể nằm trên một nút khác với nút mà các bộ phận giảm tốc cho đầu ra cụ thể đó sẽ chạy. Việc thu thập và xáo trộn các kết quả trung gian được thực hiện bởi một phân vùng và một loại. Các nhiệm vụ bản đồ sẽ phân phối các kết quả đến một phân vùng cụ thể như các đầu vào cho các nhiệm vụ giảm bớt.
Sau khi tất cả các nhiệm vụ bản đồ hoàn thành, các kết quả trung gian được tập hợp trong phân vùng và xáo trộn xảy ra, phân loại đầu ra để xử lý tối ưu bằng cách giảm.
Giảm và kết hợp dữ liệu lớn
Đối với mỗi cặp đầu ra, giảm được gọi để thực hiện nhiệm vụ của nó. Tương tự như bản đồ, giảm tập hợp kết xuất của nó trong khi tất cả các tác vụ được xử lý. Giảm không thể bắt đầu cho đến khi tất cả bản đồ được hoàn tất. Sản lượng giảm cũng là chìa khóa và một giá trị. Mặc dù điều này là cần thiết để giảm làm công việc của nó, nó có thể không phải là định dạng đầu ra hiệu quả nhất cho các ứng dụng của bạn.
Hadoop cung cấp một tính năng OutputFormat, và nó hoạt động rất giống InputFormat. OutputFormat lấy cặp khóa-giá trị và sắp xếp đầu ra để ghi vào HDFS. Nhiệm vụ cuối cùng là thực sự ghi dữ liệu lên HDFS. Điều này được thực hiện bởi RecordWriter, và nó thực hiện tương tự như RecordReader trừ ngược lại. Cần dữ liệu OutputFormat và ghi nó lên HDFS dưới dạng cần thiết cho các yêu cầu của chương trình.
Sự phối hợp của tất cả các hoạt động này được quản lý trong các phiên bản trước của Hadoop bởi một kế hoạch công việc. Lập kế hoạch này là thô sơ, và khi sự kết hợp của việc làm thay đổi và phát triển, rõ ràng là một cách tiếp cận khác nhau là cần thiết. Sự thiếu hụt cơ bản trong kế hoạch cũ là thiếu quản lý tài nguyên. Phiên bản mới nhất của Hadoop có khả năng mới này.
Hadoop MapReduce là trung tâm của hệ thống Hadoop. Nó cung cấp tất cả các khả năng bạn cần để phá vỡ dữ liệu lớn thành các khối có thể quản lý, xử lý dữ liệu song song trên phân nhóm của bạn và sau đó làm cho dữ liệu có sẵn cho người dùng tiêu dùng hoặc xử lý bổ sung. Và nó làm tất cả các công việc này một cách nhanh chóng, chống chịu lỗi. Điều này chỉ là khởi đầu.