MapReduce hoạt động như thế nào trong hệ thống tệp dữ liệu lớn?
MapReduce là một khái niệm lập trình thiết yếu mà bạn phải nắm vững để trở thành một kỹ sư dữ liệu chuyên nghiệp. Nó cung cấp các giải pháp cho hệ thống quản lý tệp dữ liệu lớn phân tán. Do đó, hiểu được nền tảng lý thuyết của MapReduce sẽ giúp bạn tự học kỹ thuật dễ dàng hơn.
Nhưng MapReduce là gì và nó hoạt động như thế nào trong các hệ thống tệp phân tán? Bạn sẽ tìm hiểu trong bài đăng này.
Mục Lục
MapReduce là gì?
MapReduce là một mô hình kỹ thuật dữ liệu được áp dụng cho các chương trình hoặc ứng dụng xử lý logic dữ liệu lớn trong các cụm máy chủ hoặc nút song song. Nó phân phối logic xử lý qua một số nút dữ liệu và tổng hợp kết quả vào máy khách-máy chủ.
MapReduce đảm bảo rằng quá trình xử lý nhanh chóng, tiết kiệm bộ nhớ và đáng tin cậy, bất kể kích thước của dữ liệu.
Hệ thống tệp Hadoop (HDFS), Hệ thống tệp của Google (GFS), Apache Kafka, GlusterFS, v.v. là những ví dụ về hệ thống tệp dữ liệu lớn phân tán sử dụng thuật toán MapReduce.
Hệ thống tệp phân tán là gì?
Hệ thống tệp phân tán (DFS) là một phương pháp lưu trữ trong máy tính liên quan đến việc chia nhỏ các tệp dữ liệu lớn thành các phần nhỏ hơn và phân tán chúng trên một số máy chủ trong hệ thống. Nó cho phép khách hàng từ nhiều nguồn khác nhau ghi và đọc dữ liệu, chia sẻ và chạy logic có thể lập trình trên dữ liệu — ngay từ bất cứ đâu.
Hệ thống tệp phân tán thường bao gồm máy chủ chính (còn được gọi là Mã tên trong Hadoop), các cụm song song và một số nút hoặc máy chủ chứa các khối dữ liệu được sao chép, tất cả đều nằm trong một trung tâm dữ liệu. Tuy nhiên, mỗi cụm trong hệ thống tệp phân tán chứa hàng trăm đến hàng nghìn nút này.
Máy chủ chính tự động phát hiện các thay đổi trong các cụm. Vì vậy, nó có thể gán các vai trò tương ứng cho từng nút.
Khi máy chủ chính nhận được một tệp dữ liệu, nó sẽ gửi nó đến các cụm trong DFS. Các cụm này chia nhỏ và phân phối dữ liệu vào từng nút bên trong chúng. Sau đó, mỗi nút sao chép dữ liệu thành những gì được gọi là khối dữ liệu để tạo thành một chuỗi. Tại thời điểm này, mỗi nút trở thành một máy chủ chunk.
Ngoài việc quản lý quyền truy cập vào dữ liệu, máy chủ chính còn giữ chú thích siêu dữ liệu trên mỗi tệp. Bằng cách đó, nó biết nút nào xử lý tệp nào trong mỗi cụm.
MapReduce hoạt động như thế nào trong hệ thống tệp phân tán?
Như đã đề cập trước đó, dữ liệu lớn có sẵn trong một số máy chủ chunk trong DFS. Một cách để thực hiện logic có thể lập trình trên các tệp dữ liệu này là tổng hợp chúng thành một. Sau đó, bạn có thể kéo chúng vào một máy chủ duy nhất, máy chủ hiện xử lý logic.
Mặc dù đó là một cách truy vấn dữ liệu thông thường, nhưng vấn đề là dữ liệu lại trở thành toàn bộ bên trong một máy chủ duy nhất. Vì vậy, một máy chủ duy nhất sẽ vẫn phải quản lý logic trên vài petabyte dữ liệu cùng một lúc. Thật không may, đây là vấn đề mà hệ thống dự định giải quyết lúc đầu. Vì vậy, nó không phải là một phương pháp tốt nhất, sau khi tất cả.
Hơn nữa, việc tổng hợp như vậy thành một máy chủ duy nhất gây ra một số rủi ro về hiệu suất. Những điều này có thể bao gồm từ sự cố máy chủ, hiệu quả tính toán kém, độ trễ cao, tiêu thụ nhiều bộ nhớ và lỗ hổng bảo mật cho đến nhiều hơn nữa.
Nhưng một cách khác để chạy logic có thể lập trình là để dữ liệu thành từng phần bên trong mỗi máy chủ phân tán. Và sau đó đưa hàm logic vào mỗi máy chủ. Nó có nghĩa là mỗi máy chủ chunk trong một cụm hiện xử lý tính toán của nó. Sử dụng phương pháp này có nghĩa là không cần phải tổng hợp hoặc kéo dữ liệu vào một máy chủ duy nhất.
Đó là khái niệm MapReduce trong hệ thống tệp dữ liệu phân tán. Nó đảm bảo rằng một máy chủ duy nhất không cần lấy dữ liệu từ nguồn. Thay vào đó, nó phân tán chức năng xử lý (MapReduce) thành một số nút chunk trong các cụm riêng biệt, vì vậy mỗi nút trong mỗi cụm xử lý logic riêng lẻ mà không làm quá tải một máy chủ duy nhất.
Do đó, một số máy chủ xử lý logic trên các bit dữ liệu đồng thời. Sự phân bổ lao động này giữa các máy chủ dẫn đến hiệu suất tối ưu và bảo mật cao hơn, trong số các hoạt động tích cực khác.
Kết quả MapReduce được xử lý như thế nào trong DFS?
Đây là cách toàn bộ xử lý MapReduce hoạt động trong DFS:
-
Máy chủ chính nhận một truy vấn dữ liệu lớn (chức năng MapReduce) từ máy khách.
-
Sau đó, nó sẽ gửi điều này đến từng cụm để trải rộng trên từng nút bên trong nó.
-
Mỗi nút xử lý hàm MapReduce và tích lũy kết quả của nó.
-
Một máy chủ khác đối chiếu kết quả từ mỗi nút và gửi chúng trở lại máy chủ chính.
-
Sau đó máy chủ chính sẽ gửi kết quả dưới dạng phản hồi cho máy khách.
Do đó, công việc duy nhất của một máy chủ chính là gửi một kết quả đã được tính toán sẵn đến máy khách, lắng nghe các thay đổi và quản lý quyền truy cập vào dữ liệu. Nó không thực hiện bất kỳ phép tính nào. Đây là lý do tại sao hầu hết các ứng dụng điện toán đám mây đều có tốc độ ấn tượng bất chấp lượng dữ liệu mà chúng xử lý.
Bản đồ chính xác là gì và thu nhỏ trong MapReduce là gì?
MapReduce sử dụng hai logic lập trình để xử lý dữ liệu lớn trong hệ thống quản lý tệp phân tán (DFS). Đây là một bản đồ và chức năng giảm.
Các bản đồ chức năng thực hiện công việc xử lý trên mỗi nút dữ liệu trong mỗi cụm của hệ thống tệp phân tán. Các giảm bớt sau đó hàm tổng hợp các kết quả được trả về bởi mỗi máy chủ chunk và chuyển nó đến một máy chủ khác trong DFS để tổng hợp kết quả. Máy chủ nhận sẽ gửi phép tính này đến máy chủ chính, máy chủ này sẽ đăng giá trị trả về cho máy chủ phía máy khách.
Điều gì sẽ xảy ra khi một máy chủ Chunk gặp sự cố?
Các máy chủ trong hệ thống tệp phân tán (DFS) đôi khi có thể gặp phải thời gian chết. Bạn có thể nghĩ rằng điều này sẽ phá vỡ toàn bộ hệ thống, nhưng nó không.
Có một hệ thống trong máy tính ngăn chặn sự cố sắp xảy ra như vậy. Nó được gọi là khả năng chịu lỗi.
Do đó, ngay cả khi máy chủ hoạt động trong quá trình xử lý dữ liệu, khả năng chịu lỗi đảm bảo rằng máy chủ chính phát hiện ra nó ngay lập tức. Và vì có một bản sao của các khối dữ liệu trên các nút, máy chủ chính sẽ chuyển ngay công việc xử lý sang một máy chủ khác. Bằng cách đó, thời gian ngừng hoạt động của máy chủ trong DFS không ảnh hưởng đến quá trình xử lý dữ liệu.
MapReduce giúp xử lý dữ liệu lớn
MapReduce là một mô hình thiết yếu giúp tính toán dễ dàng trong các hệ thống tệp phân tán. Bởi vì nó cho phép một số nút chạy tính toán đồng thời, đó là một phương pháp nhanh chóng được sử dụng bởi các gã khổng lồ công nghệ khác nhau để giải quyết nhiều vấn đề đi kèm với phân tích dữ liệu lớn.
Google, Amazon, IBM, trong số những công ty khác, là những ví dụ về các công ty sử dụng khái niệm này. Ví dụ: Google áp dụng khái niệm MapReduce để mang lại kết quả truy vấn trong quá trình tìm kiếm của Google.
Đọc tiếp
Thông tin về các Tác giả