20. 當 Client 端上傳檔案到 HDFS 時,下列敘述何者較為正確?
(A) 資料經過 NameNode 傳給 DataNode
(B) 資料區塊將依預先設定依次傳遞
(C) Client 將資料上傳到一台 DataNode 上,並由 DataNode 完成副本的複製工作
(D) 該 DataNode 失敗時,Client 不會繼續上傳給其他 DataNode
答案:登入後查看
統計: A(2), B(1), C(4), D(4), E(0) #3219154
統計: A(2), B(1), C(4), D(4), E(0) #3219154
詳解 (共 1 筆)
#6332643
在 HDFS(Hadoop Distributed File System) 的架構中,檔案上傳時涉及 NameNode 和 DataNode 之間的協調與數據存儲機制。讓我們逐一分析選項:
選項分析
-
(A) 資料經過 NameNode 傳給 DataNode ❌ (錯誤)
- NameNode 主要負責 檔案系統的元數據管理(metadata management),它不會直接處理檔案的數據傳輸。
- 實際的數據塊(blocks)是 Client 直接傳送給 DataNode,而不是經由 NameNode。
- 錯誤原因:HDFS 使用 NameNode 負責管理,而 Client 直接和 DataNode 溝通。
-
(B) 資料區塊將依預先設定依次傳遞 ❌ (錯誤)
- HDFS 並非嚴格按照預設順序依次傳遞數據塊,而是將檔案切割成多個 block(預設 128MB 或 256MB),並同時寫入多個 DataNode。
- 錯誤原因:HDFS 使用「流水線(Pipeline)」方式並行寫入,而不是嚴格的順序傳遞。
-
(C) Client 將資料上傳到一台 DataNode 上,並由 DataNode 完成副本的複製工作 ✅ (正確)
- 當 Client 上傳資料時:
- Client 先與 NameNode 溝通,取得要存放資料的 DataNode 列表。
- Client 將資料上傳到第一個 DataNode,並透過「流水線(Pipeline)」機制,由第一個 DataNode 將數據複製到第二個 DataNode,再由第二個複製到第三個,確保 HDFS 設定的副本數(默認 3 份)。
- 正確原因:DataNode 會負責將收到的區塊 複製到其他 DataNode,以確保高可用性。
- 當 Client 上傳資料時:
-
(D) 該 DataNode 失敗時,Client 不會繼續上傳給其他 DataNode ❌ (錯誤)
- HDFS 具有容錯機制,如果某個 DataNode 失敗,Client 會自動選擇其他 DataNode 進行數據上傳,確保數據完整性。
- 錯誤原因:HDFS 會根據 副本機制(Replication)和失敗重試機制(Failover) 來處理 DataNode 失敗的情況,並非直接終止上傳。
正確答案
✅ (C) Client 將資料上傳到一台 DataNode 上,並由 DataNode 完成副本的複製工作
0
0