Mô tả cách thức một client đọc dữ liệu trên HDFS:
A.
client thông báo tới namenode để bắt đầu quá trình đọc sau đó client chạy truy vấn các datanode để trực tiếp đọc các chunks
B.
client truy vấn Namenode để biết được vị trí các chunks. Nếu namenode không biết thì namenode sẽ hỏi các datanode. Sau đó namenode gửi lại thông tin vị trí các chunk cho client. client kết nối song song tới các Datanode để đọc các chunk
C.
client truy vấn namenode để đưa thông tin về thao tác đọc, Namenode kết nối song song tới các datanode để lấy dữ liệu, sau đó trả về cho client
D.
client truy vấn namenode để biết được vị trí các chunks. Namenode trả về vị trí các chunks
Trả lời:
Đáp án đúng: D
Đáp án đúng là B.
Quá trình đọc dữ liệu trên HDFS diễn ra như sau:
1. **Client gửi yêu cầu đến Namenode:** Client muốn đọc một file trên HDFS, nó sẽ gửi yêu cầu đến Namenode để biết vị trí của các block (chunk) của file đó.
2. **Namenode cung cấp thông tin vị trí:** Namenode chứa metadata của hệ thống file, bao gồm thông tin về vị trí của tất cả các block. Namenode trả về danh sách các Datanode chứa các block cần thiết cho client.
3. **Client kết nối trực tiếp đến Datanode:** Client sử dụng thông tin vị trí nhận được từ Namenode để kết nối trực tiếp đến các Datanode tương ứng.
4. **Đọc dữ liệu song song:** Client đọc dữ liệu từ các Datanode song song để tăng tốc độ đọc. Dữ liệu được trả về cho client.
Các phương án khác không chính xác vì:
* **A:** Client không thông báo cho Namenode để *bắt đầu* quá trình đọc. Namenode chỉ cung cấp thông tin vị trí.
* **C:** Namenode không trực tiếp lấy dữ liệu từ Datanode rồi trả về cho client. Client tự kết nối và đọc.
* **D:** Thiếu bước quan trọng là client phải kết nối và đọc dữ liệu từ các Datanode sau khi đã biết vị trí.