我有一個關於HDFS文件寫入和讀取的基本問題。例如,如果我正在使用默認配置寫入文件,則Hadoop內部必須將每個塊寫入3個數據節點。我的理解是,對於每個塊,首先客戶端將塊寫入管道中的第一個數據節點,然後通知第二個數據節點,依此類推。一旦第三個數據節點成功接收到該數據塊,就會通過數據節點1向數據節點2和客戶端提供確認。只有在接收到該數據塊的確認後,才認爲寫入成功,並且客戶端繼續寫入下一個區塊。Hadoop:HDFS文件寫入和讀取
如果是這種情況,則是不寫每個塊所花費的時間超過一個傳統的文件寫入由於 -
- 複製因子(默認爲3)和
- 的寫入過程在塊後依次發生。
如果我的理解錯了,請糾正我。此外,下面的下列問題:
- 我的理解是在Hadoop中該文件的讀/寫沒有任何並行性,它可以執行最好的是相同的讀取或寫入(即如果複製是一種傳統的文件設置爲1)+分佈式通信機制中涉及的一些開銷。
- 並行性僅在數據處理階段通過Map Reduce提供,但不在客戶端的文件讀/寫期間提供。
那麼有效,一與傳統的文件讀/寫相比,hadoop中的寫或讀操作性能較低。另外,集羣的大小並不重要。複製因子越多,寫入數據所需的時間就越多。我只是想知道如何將數據以PB級的順序複製到hadoop集羣,或者性能如此之慢。只是在處理過程中實現性能並不足夠,因爲我們仍將根據數據複製到/離開hadoop的速度來決定。 –