hdfs儲存模型是從邏輯層面上談hdfs,具體物理架構見本部落格《hadoop——hdfs架構設計》
hdfs系統中,檔案線性按位元組切割成塊(block),且每個塊都有偏移量(offset)和id
各檔案block大小可以不一樣,比如a的塊大小為4kb,b的塊大小為8kb,但是每個檔案中,除了最後乙個塊大小可以與其餘塊不同,其餘塊大小必須相同
block塊應根據硬體的i/o特性調整,在hadoop 1.x版本時,block塊大小預設為64mb,在hadoop 2.x版本時,block塊大小預設為128mb
由於是分布式環境,所以block塊被分散在集群的各個節點中,但是block具有location(也就是說每個block塊會有乙個屬性記錄當前block塊的位址)
block塊具有副本(replication),副本是滿足可靠性和效能的關鍵,副本不能出現在同一節點(為了容災考慮)上,副本之間沒有主從概念,所有副本「地位」一致,比如block 1有3個副本,則說明整個集群中有3個block 1
檔案上傳時可以指定block塊的大小和副本數,上傳之後只能修改副本數,不能再更改block塊的大小了
檔案是一次寫入多次讀取的,且不支援修改檔案,相當於唯讀。不修改的原因很簡單,因為這會造成block塊大小不一致,offset不成規律。但是允許在檔案後追加資料,因為這不會更改前面block塊的大小,不影響offset
以上所有關於block的限制都是為了計算時的便利,這也是為什麼hadoop要做乙個自己檔案系統,而不用他家檔案系統的本質原因
Hadoop HDFS一致模型和distcp
一致模型 新建檔案後,能在檔案系統的命名空間立即可見 寫入檔案的內容不能保證立即可見,因為正在寫入的塊對reader不可見,會不一致 hflush fsdatainputstream的方法,hdfs保證目前寫入的資料都到達datanode的寫入管線並對所有reader可見,確保資料在記憶體中,不確保...
mysql資料儲存模型 資料儲存模型
rdbms nosql hadoop hbase hbase以big table為藍本,以鍵值對儲存,實現快速在主機內億級記錄中定位到所需的資料並訪問它。hbase彌補了hadoop無法隨即讀寫的缺陷,如果需要實時的訪問資料,就把資料存入hbase。hbase常應用於建立網際網路索引 推薦系統後台 ...
Hadoop HDFS資料組織
hadoop培訓內容 hdfs資料組織,1.資料塊,2.staging,3.流水線式的複製 1.資料塊 hdfs最適合的應用場景是處理大資料集合,同時這些應用多是一次寫入多次讀取,並且讀的速度要滿足流式讀,即write once read many的語義。乙個典型的block大小是64mb,因此檔案...