Yandex Big Data Essentials Week1 Scaling Distributed File System

GFS Key Components

  • components failures are a norm
  • even space utilisation
  • write-once-read-many

GFS and Hadoop Distributed File System

GFS與hdfs的結構
GFS主要分爲:Application 、Master、ChannelServer
hdfs主要分爲:Appllcation 、 NameNode 、DataNode三部分

how to read file from hdfs

這裏寫圖片描述
HDFS client 運行在client node 上的client jvm上。

讀取文件的流程

  1. 打開分佈式文件系統上的文件
  2. 從NameNode處取的文件塊的位置
  3. HDFS client將塊位置信息傳給FSDataInputStream
  4. FSDataInputStream再從相應的DataNode裏面讀取其中一個塊數據
  5. FSDataInputStream再從相應的DataNode裏面讀取另一個塊數據
  6. 關閉FSDataInputStream

寫入文件的流程

向hdfs中寫入文件的流程
hdfs client 運行在client jvm上,client jvm運行在client jvm上。
寫入文件的流程:
1. HDFS client 在Distributed FileSystem上創建文件
2. DistributedFileSystem 在NameNode上create一個文件
3. HDFS client 通過FSDataInputStream向datanode發送write packet
4. 至少三個datanode組成Pipeline of datanodes寫入多個副本
5. datanode向FSDataInpuStream發送ack packet
6. 關閉

In DFS,you can “append” into file,but cannot “modify” a file in the middle. Why?
DFS的核心特性write once read many time 描述了一種數據存儲策略。信息一旦寫入就不能修改,因爲修改操作需要對對底層的存儲結構進行修改。如果需要修改分佈式文件系統(例如hdfs)中的文件,可以寫一份新的同樣文件名的數據。舊的文件在hdfs在整理數據的時候會丟棄。

HDFS應用需要一個“一次寫入多次讀取”的文件訪問模型。一個文件經過創建、寫入和關閉之後就不需要改變。這一假設簡化了數據一致性問題,並且使高吞吐量的數據訪問成爲可能。Map/Reduce應用或者網絡爬蟲應用都非常適合這個模型。目前還有計劃在將來擴充這個模型,使之支持文件的附加寫操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章