2013-06-26 31 views
2

所以我正在爲CCDH認證學習,我在網上發現了一些樣例問題,但說實話,我不認爲它們都是那麼準確,所以我想在這裏查看。NameNode DataNode讀取操作通信

以下哪項描述了對HDFS的最佳讀取操作?

A.客戶端向NameNode查詢塊位置。 NameNode將 塊位置返回給客戶端。客戶端從數據節點讀取數據目錄。

B.客戶端並行查詢所有DataNode。包含所請求的 數據的DataNode直接響應客戶端。客戶端直接從DataNode讀取數據。

C.客戶端聯繫NameNode獲取塊位置。 NameNode然後 查詢DataNode的塊位置。 DataNode響應NameNode, ,NameNode將客戶端重定向到DataNode,該DataNode包含請求的數據塊 。客戶端然後直接從DataNode讀取數據。

D.客戶端聯繫NameNode獲取塊位置。 NameNode聯繫 保存請求數據塊的DataNode。數據從DataNode 傳輸到NameNode,然後從NameNode傳輸到客戶端。

我知道肯定B和D.根據該文件,正確的答案是C.但我一直認爲NameNode已經在RAM的塊位置,並且不需要查詢datanodes?所以我期望正確的答案是A.我是錯的還是文檔錯了?

回答

3

NameNode不查詢DataNode以獲取塊位置。相反,它在DN發送的block reports的幫助下動態構建它。請記住,DN會在每隔幾秒鐘向NN發送阻止報告以及心跳。

所以,正確的答案應該是選項A.

0

爲什麼名稱節點很少與數據節點通信是,其主要工作是提供讀/寫請求的客戶端,並從數據節點更新元數據的原因,因此它不會浪費其資源並從datanode獲取數據。相反,datanodes與namenode進行通信,namenode是簡單的基於套接字的通信,以提供心跳和阻止報告。請參閱http://hashprompt.blogspot.com/2014/05/multi-node-hadoop-cluster-on-oracle.html

0

正確的答案應該是選項A.

NN->客戶端 - NN存儲所有的文件名,存儲塊中的位置,並響應與所需信息的客戶端。因爲在Hadoop(便宜的硬件)中,羣集中的DN有時不可用(由於網絡或硬件問題),所以NN不應該依賴DD作爲metdata。

希望這會有所幫助。

相關問題