所以我正在学习CCDH认证,我在网上找到了一些示例问题,但老实说,我认为它们并不那么准确,所以我想在这里检查一下。
以下哪项最能描述 HDFS 上的读取操作?
A. 客户端向 NameNode 查询块位置。NameNode 将块位置返回给客户端。客户端从 DataNode(s) 中读取数据目录。
B. 客户端并行查询所有DataNode。包含请求数据的 DataNode 直接响应客户端。客户端直接从 DataNode 读取数据。
C. 客户端联系 NameNode 获取块位置。NameNode 然后向 DataNode 查询块位置。DataNode 响应 NameNode,NameNode 将客户端重定向到保存请求数据块的 DataNode。然后客户端直接从 DataNode 读取数据。
D. 客户端联系 NameNode 获取块位置。NameNode 联系持有所请求数据块的 DataNode。数据从 DataNode 传输到 NameNode,然后从 NameNode 传输到客户端。
我确定B和D。根据文档,正确答案是C。但我一直认为NameNode在RAM中已经有了块位置,不需要查询数据节点?所以我希望正确答案是 A。我错了还是文件错了?