Khi ghi dữ liệu vào HDFS điều gì là đúng nếu hệ số sao chép là ba? (Chọn 2 câu trả lời)
Dữ liệu được ghi vào DataNodes trên ba giá đỡ riêng biệt (nếu Rack Aware)
Dữ liệu được lưu trữ trên mỗi Mã dữ liệu bằng một tệp riêng biệt chứa giá trị tổng kiểm tra
Dữ liệu được ghi vào các khối trên ba DataNodes khác nhau
Khách hàng được trả lại thành công khi ghi thành công khối đầu tiên và kiểm tra tổng kiểm tra
Trả lời:
Đáp án đúng: C
Câu hỏi này kiểm tra kiến thức về cơ chế ghi dữ liệu vào HDFS với hệ số sao chép (replication factor). Cụ thể:
* **Lựa chọn 1:** "Dữ liệu được ghi vào DataNodes trên ba giá đỡ riêng biệt (nếu Rack Aware)" - **Đúng.** Trong môi trường Hadoop có nhiều rack (giá đỡ), HDFS cố gắng phân phối các bản sao dữ liệu trên các rack khác nhau để tăng khả năng chịu lỗi. Nếu hệ số sao chép là 3, HDFS sẽ cố gắng lưu trữ mỗi bản sao trên một rack khác nhau. Điều này giúp hệ thống vẫn hoạt động nếu một rack bị lỗi.
* **Lựa chọn 2:** "Dữ liệu được lưu trữ trên mỗi Mã dữ liệu bằng một tệp riêng biệt chứa giá trị tổng kiểm tra" - **Đúng.** HDFS lưu trữ dữ liệu và metadata (ví dụ như checksum) riêng biệt. Checksum được sử dụng để đảm bảo tính toàn vẹn dữ liệu.
* **Lựa chọn 3:** "Dữ liệu được ghi vào các khối trên ba DataNodes khác nhau" - **Đúng.** Với hệ số sao chép là 3, mỗi khối dữ liệu sẽ có 3 bản sao, và mỗi bản sao được lưu trữ trên một DataNode khác nhau. Đây là cách HDFS đảm bảo tính sẵn sàng và độ tin cậy của dữ liệu.
* **Lựa chọn 4:** "Khách hàng được trả lại thành công khi ghi thành công khối đầu tiên và kiểm tra tổng kiểm tra" - **Sai.** Client chỉ nhận được thông báo thành công sau khi tất cả các bản sao (dựa trên hệ số sao chép) của một khối dữ liệu đã được ghi thành công và kiểm tra checksum. Việc trả về thành công chỉ sau khi ghi bản sao đầu tiên sẽ không đảm bảo tính toàn vẹn và sẵn sàng của dữ liệu.
Vậy đáp án đúng là B. 2 & 3