Trong hướng dẫn Hadoop này, chúng tôi sẽ giải thích cho bạn khái niệm Địa phương dữ liệu trong Hadoop.
Trước hết, chúng ta sẽ xem phần giới thiệu về MapReduce Data local trong Hadoop, sau đó chúng ta sẽ thảo luận về sự cần thiết của Hadoop Data Locality tiếp theo với các danh mục Data Locality trong MapReduce, Data local local tối ưu hóa.
Cuối cùng, chúng ta sẽ thấy những ưu điểm của nguyên tắc Vị trí dữ liệu Hadoop trong hướng dẫn MapReduce này.
Vị trí dữ liệu trong Hadoop MapReduce là gì?
Định vị dữ liệu trong Hadoop là quá trình di chuyển tính toán gần với nơi dữ liệu thực tế cư trú thay vì di chuyển dữ liệu lớn sang tính toán. Điều này giảm thiểu tắc nghẽn mạng tổng thể. Điều này cũng làm tăng thông lượng tổng thể của hệ thống.
Nhược điểm chính của Hadoop là lưu lượng mạng chuyển đổi chéo do lượng dữ liệu khổng lồ. Để khắc phục nhược điểm này, Vị trí dữ liệu đã ra đời.
Trong Hadoop, HDFS lưu trữ bộ dữ liệu. Framework chia bộ dữ liệu thành các khối và lưu trữ trên các nút dữ liệu. Khi một ứng dụng khách chạy công việc MapReduce, thì NameNode đã gửi mã MapReduce đến các nút dữ liệu mà trên đó dữ liệu có sẵn theo công việc MapReduce.
Yêu cầu đối với Vị trí dữ liệu Hadoop
Kiến trúc Hadoop cần đáp ứng các điều kiện dưới đây để có được những lợi ích của tất cả các lợi thế của địa phương dữ liệu:
- Đầu tiên, cụm Hadoop phải có cấu trúc liên kết thích hợp. Mã Hadoop phải có khả năng đọc cục bộ dữ liệu.
- Thứ hai, Apache Hadoop nên biết cấu trúc liên kết của các nút nơi các tác vụ được thực thi. Ngoài ra, Hadoop cũng nên biết vị trí của dữ liệu.
Các loại định vị dữ liệu trong Hadoop
Các danh mục khác nhau trong Vị trí dữ liệu Hadoop như sau:
1. Dữ liệu cục bộ dữ liệu trong Hadoop
Trong đó, dữ liệu nằm trên cùng một nút với trình ánh xạ làm việc trên dữ liệu. Trong điều này, sự gần gũi của dữ liệu là rất gần với tính toán. Dữ liệu cục bộ dữ liệu là trường hợp được ưu tiên nhất.
2. Vị trí dữ liệu Intra-Rack trong Hadoop
Như chúng ta biết rằng không phải lúc nào cũng có thể thực thi trình ánh xạ trên cùng một nút dữ liệu do các hạn chế về tài nguyên. Trong trường hợp này, ưu tiên chạy trình ánh xạ trên nút khác nhưng trên cùng một giá đỡ.
3. Vị trí dữ liệu Inter-Rack trong Hadoop
Đôi khi cũng không thể thực thi ánh xạ trên một nút khác trong cùng một giá đỡ. Trong tình huống như vậy, chúng tôi sẽ thực thi trình ánh xạ trên các nút trên các giá đỡ khác nhau. Định vị dữ liệu giữa các chuỗi là kịch bản ít được ưu tiên nhất.
Tối ưu hóa cục bộ dữ liệu Hadoop
Vì định vị dữ liệu là lợi thế chính của Hadoop MapReduce. Nhưng điều này không phải lúc nào cũng có lợi trong thực tế do nhiều lý do như Cụm không đồng nhất, thực thi suy đoán, Phân phối và sắp xếp dữ liệu cũng như Bố cục Dữ liệu.
Trong các cụm lớn, thách thức trở nên phổ biến hơn. Vì trong cụm lớn, số lượng nút dữ liệu và dữ liệu nhiều hơn, thì địa phương càng ít.
Trong các cụm lớn hơn, một số nút mới hơn và nhanh hơn nút còn lại, tạo ra dữ liệu để tính toán tỷ lệ mất cân bằng. Do đó, các cụm lớn có xu hướng không hoàn toàn đồng nhất.
Trong thực thi suy đoán Hadoop vì dữ liệu có thể không phải là cục bộ, nhưng nó sử dụng sức mạnh tính toán. Nguyên nhân chính cũng nằm ở cách bố trí / sắp xếp dữ liệu. Ngoài ra, quá trình xử lý dữ liệu không cục bộ gây căng thẳng cho mạng, điều này gây ra vấn đề về khả năng mở rộng. Do đó mạng trở thành nút cổ chai.
Chúng tôi cũng có thể cải thiện vị trí dữ liệu bằng cách phát hiện đầu tiên những công việc nào đã suy giảm theo thời gian hoặc vấn đề về vị trí dữ liệu. Việc giải quyết vấn đề phức tạp hơn và liên quan đến việc thay đổi vị trí dữ liệu và bố cục dữ liệu bằng cách sử dụng một công cụ lập lịch khác.
Sau đó, chúng tôi phải xác minh xem liệu một lần thực thi mới của cùng một khối lượng công việc có tỷ lệ cục bộ dữ liệu tốt hơn hay không.
Ưu điểm của định vị dữ liệu trong Hadoop
- Thông lượng Cao - Vị trí dữ liệu trong Hadoop làm tăng thông lượng tổng thể của hệ thống.
- Thực thi nhanh hơn - Trong vùng dữ liệu, khung di chuyển mã đến nút nơi dữ liệu cư trú thay vì di chuyển dữ liệu lớn đến nút. Do đó, điều này làm cho Hadoop nhanh hơn. Vì kích thước của chương trình luôn nhỏ hơn kích thước của dữ liệu, nên việc di chuyển dữ liệu là một nút thắt cổ chai của quá trình truyền mạng.
Kết luận
Kết luận, Data local trong Hadoop cải thiện việc thực thi tổng thể của hệ thống và làm cho Hadoop nhanh hơn. Do đó, nó làm giảm tắc nghẽn mạng.
Nếu bạn thấy blog này hữu ích, hoặc bạn có bất kỳ thắc mắc nào, hãy để lại nhận xét trong phần bình luận bên dưới. Chúng tôi sẽ rất vui khi giải quyết chúng.