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

詳解 (共 1 筆)

#6332643

HDFS(Hadoop Distributed File System) 的架構中,檔案上傳時涉及 NameNodeDataNode 之間的協調與數據存儲機制。讓我們逐一分析選項:

選項分析

  1. (A) 資料經過 NameNode 傳給 DataNode(錯誤)

    • NameNode 主要負責 檔案系統的元數據管理(metadata management),它不會直接處理檔案的數據傳輸。
    • 實際的數據塊(blocks)是 Client 直接傳送給 DataNode,而不是經由 NameNode。
    • 錯誤原因:HDFS 使用 NameNode 負責管理,而 Client 直接和 DataNode 溝通
  2. (B) 資料區塊將依預先設定依次傳遞(錯誤)

    • HDFS 並非嚴格按照預設順序依次傳遞數據塊,而是將檔案切割成多個 block(預設 128MB 或 256MB),並同時寫入多個 DataNode。
    • 錯誤原因:HDFS 使用「流水線(Pipeline)」方式並行寫入,而不是嚴格的順序傳遞。
  3. (C) Client 將資料上傳到一台 DataNode 上,並由 DataNode 完成副本的複製工作(正確)

    • 當 Client 上傳資料時:
      1. Client 先與 NameNode 溝通,取得要存放資料的 DataNode 列表
      2. Client 將資料上傳到第一個 DataNode,並透過「流水線(Pipeline)」機制,由第一個 DataNode 將數據複製到第二個 DataNode,再由第二個複製到第三個,確保 HDFS 設定的副本數(默認 3 份)。
    • 正確原因:DataNode 會負責將收到的區塊 複製到其他 DataNode,以確保高可用性。
  4. (D) 該 DataNode 失敗時,Client 不會繼續上傳給其他 DataNode(錯誤)

    • HDFS 具有容錯機制,如果某個 DataNode 失敗,Client 會自動選擇其他 DataNode 進行數據上傳,確保數據完整性。
    • 錯誤原因:HDFS 會根據 副本機制(Replication)和失敗重試機制(Failover) 來處理 DataNode 失敗的情況,並非直接終止上傳。

正確答案

(C) Client 將資料上傳到一台 DataNode 上,並由 DataNode 完成副本的複製工作

0
0