HDFS與其餘並行文件系統的比較


HDFS做爲一種新興的並行文件系統,和現有的分佈式文件系統類似,他們都是運行在普通硬件之上的分佈式文件系統,然而HDFS與其餘分佈式文件系統也存在着一些差異。如HDFS具備高容錯性,能夠部署在低成本的硬件之上,同時放鬆了對POSIX的需求,使其能夠以流的形式訪問文件數據,很是適合大數據集的應用程序。分析研究HDFS與其餘並行文件系統的相同點和不一樣點,可以深刻了解HDFS系統的應用場景和設計理念。 
(1)訪問的透明性,用戶能經過相同操做來訪問本地文件和遠程文件。HDFS能夠作到這一點,但若是HDFS設置成本地文件系統,而不是分佈式,那麼HDFS的應用程序能夠直接讀寫本地文件,只須要修改配置文件。可見,HDFS提供的訪問透明性是不徹底的,畢竟它構建於java之上,不能像NFS和Lustre那樣去修改Unix內核,同時將本地文件和遠程文件以一致地方式處理。 
(2)併發控制,客戶端對文件的讀寫不該該影響其餘客戶端對同一個文件的讀寫。要想實現這種單個文件拷貝語義,分佈式文件系統須要作出複雜的交互,例如採用時間戳、採用互斥、原子操做等。而HDFS採用的機制很是簡單,任什麼時候間都只容許一個客戶端進行寫操做。當客戶端須要寫文件時,會對這個文件申請一個租約,只有這個租約被釋放,別的客戶端才能申請對這個文件的寫操做。文件經建立並寫入關閉以後再也不改變,它的模型是「Write-Once-Read-Many」。  
(3)資源移動策略,HDFS支持「移動計算到數據」。若一個Map任務是對某個數據塊的操做,則這個操做一定是在存儲這個數據塊的節點上完成的,同時HDFS支持數據的多副本(默認爲3個副本),存儲任一副本的節點均可以執行Map任務的操做,JobTracker會把任務分配給距離客戶端最近的,且存有副本的節點。 
經過上面三方面的比較,能夠深刻的理解HDFS的優勢和缺點,以及HDFS的設計應用場景。對於追求海量數據的高吞吐量、批量處理任務HDFS無疑能發揮巨大的威力,可是對文件的隨機讀寫卻並不適合。同時,HDFS也不適合對低延時訪問、大量小文件的存儲及處理。java

更多精彩內容請關注:http://bbs.superwu.cn 微信

關注超人學院微信二維碼:併發

相關文章
相關標籤/搜索