Trong blog Hướng dẫn Hadoop, chúng tôi sẽ đề cập đến HDFS Chi tiết về Disk Balancer. Trước hết, chúng ta sẽ thảo luận về Disk Balancer trong Hadoop là gì, sau đó chúng ta sẽ thảo luận về các hoạt động khác nhau của Disk Balancer trong Hadoop.
Chúng ta cũng sẽ thảo luận về Trình cân bằng đĩa mã dữ liệu trong trong hadoop và thuật toán của nó. Cuối cùng trong hướng dẫn này, chúng tôi sẽ đề cập đến các tính năng của Hadoop Chi tiết về bộ cân bằng đĩa HDFS.
Giới thiệu về Trình cân bằng đĩa HDFS
Trình cân bằng đĩa HDFS là một công cụ dòng lệnh. Nó phân phối dữ liệu đồng nhất trên tất cả các đĩa của một datanode. HDFS Disk balancer hoàn toàn khác với Balancer, quản lý cân bằng dữ liệu trên toàn bộ cụm.
Do những lý do dưới đây, HDFS có thể không phải lúc nào cũng phân phối dữ liệu một cách thống nhất trên các đĩa:
- Viết nhiều và xóa
- Thay thế đĩa
Điều này dẫn đến sai lệch đáng kể trong DataNode. Do đó, HDFS Balancer không thể xử lý điều này, điều này liên quan đến sự lệch Inter, Non-Intra, DN.
Vì vậy, chức năng Cân bằng mã dữ liệu nội bộ mới đã ra đời để giải quyết tình huống này. Điều này được gọi thông qua HDFS Disk Balancer CLI.
Disk Balancer hoạt động dựa trên một datanode nhất định và di chuyển các khối từ đĩa này sang đĩa khác.
Hoạt động của Disk Balancer
Bằng cách tạo một kế hoạch (một tập hợp các câu lệnh) và thực thi kế hoạch đó trên datanode, HDFS Disk balancer sẽ hoạt động. Các bộ câu lệnh này mô tả lượng dữ liệu sẽ di chuyển giữa hai đĩa.
Một kế hoạch có nhiều bước di chuyển. Các bước di chuyển này có một số byte để di chuyển, đĩa nguồn và đĩa đích. Một kế hoạch có thể thực thi dựa trên một nút dữ liệu hoạt động.
Trình cân bằng đĩa HDFS không được bật theo mặc định;
Vì vậy, để bật trình cân bằng đĩa HDFS dfs.disk.balancer.enabled được đặt true trong hdfs-site.xml .
HDFS Intra-DataNode DiskBalancer
Khi người dùng ghi khối mới trong HDFS, do đó, bằng cách sử dụng khối lượng chọn chính sách datanode, hãy chọn đĩa cho khối. Dưới đây là hai chính sách như vậy:
- Thi đấu vòng tròn - Chính sách này phân phối các khối mới một cách thống nhất trên các đĩa có sẵn.
- Dung lượng trống - Chính sách này ghi dữ liệu vào đĩa có nhiều dung lượng trống hơn theo tỷ lệ phần trăm.
Theo mặc định, HDFS DataNode sử dụng chính sách Round-robin.
Datanode vẫn tạo ra khối lượng mất cân bằng đáng kể do xóa và bổ sung tệp lớn trong HDFS. Thậm chí, có thể chính sách chọn ổ đĩa dựa trên dung lượng khả dụng có thể dẫn đến I / O ổ đĩa kém hiệu quả hơn.
Mỗi lần ghi mới sẽ chuyển đến đĩa trống mới được thêm vào trong khi tại thời điểm đó các đĩa khác không hoạt động. Do đó, tạo ra một nút cổ chai trên đĩa mới.
Để giảm vấn đề mất cân bằng dữ liệu, cộng đồng Apache Hadoop đã phát triển các tập lệnh ngoại tuyến máy chủ. HDFS-1312 cũng giới thiệu trình cân bằng đĩa trực tuyến. Điều này sẽ cân bằng lại các khối lượng trên một datanode đang chạy dựa trên các số liệu khác nhau.
Khả năng của Trình cân bằng đĩa HDFS
1. Báo cáo lan truyền dữ liệu
Người dùng có thể đo lường cách phân bổ dữ liệu thông qua các chỉ số.
a) Mật độ dữ liệu khối lượng hoặc mật độ dữ liệu trong nút
Chỉ số này có thể tính toán lượng dữ liệu có trên một nút. Đồng thời cho biết dung lượng lưu trữ lý tưởng trên mỗi ổ là bao nhiêu.
Công thức tính toán, tức là tổng dữ liệu tại nút đó chia cho tổng dung lượng đĩa của nút đó.
Bộ nhớ lý tưởng =tổng dung lượng đã sử dụng% tổng dung lượng
Mật độ dữ liệu khối lượng =bộ nhớ lý tưởng - dfsUsedRatio
- Giá trị dương- Điều này cho thấy rằng đĩa đang được sử dụng kém.
- Giá trị âm- Điều này cho thấy rằng đĩa đã được sử dụng quá mức.
b) Mật độ dữ liệu nút hoặc mật độ dữ liệu giữa các nút
Như bây giờ chúng tôi đã tính toán mật độ dữ liệu khối lượng. Vì vậy, chúng tôi có thể dễ dàng so sánh tất cả các nút trong trung tâm dữ liệu cần cân bằng?
c) Báo cáo
Bây giờ chúng ta có mật độ dữ liệu khối lượng và mật độ dữ liệu nút. Vì vậy, trình cân bằng đĩa có thể cân bằng 20 nút hàng đầu trong cụm có phân phối dữ liệu bị lệch.
2. Cân bằng dữ liệu giữa các khối lượng trong khi datanode vẫn còn sống
Trình cân bằng đĩa HDFS có khả năng di chuyển dữ liệu từ ổ đĩa này sang ổ đĩa khác.
Kết luận
Kết luận, chúng ta có thể nói rằng Disk Balancer là công cụ phân phối dữ liệu trên tất cả các đĩa của một datanode. Nó hoạt động bằng cách tạo một kế hoạch (tập hợp các câu lệnh) và thực thi kế hoạch đó trên datanode.
HDFS Disk Balancer sử dụng Round-robin và Không gian có sẵn chính sách chọn đĩa cho khối. Nếu bạn thấy blog này hữu ích hoặc bạn có bất kỳ câu hỏi nào, hãy chia sẻ với chúng tôi trong phần bình luận. Chúng tôi sẽ rất vui khi giải quyết chúng.