Hadoop HDFS (1)

HDFS是Hadoop Distributed Filesystem,Hadoop分佈式文件系統。

當數據大到一臺機器無法存儲時,就要把它分散到多臺機器上去,通過網絡管理多臺計算機上的存儲空間的文件系統,就稱爲分佈式文件系統。網絡程序的複雜性使得分佈式文件系統比普通的磁盤文件系統複雜得多,例如其中最大的挑戰之一就是要容錯,要在其中一個或幾個節點死掉後,仍能保證數據完整。

HDFS是Hadoop的旗艦文件系統,但是Hadoop還有一個抽象的文件系統,用於整合其它文件系統,例如本地存儲。

HDFS是爲存儲非常大的文件設計的文件系統,適合於流式數據訪問,運行於普通商業計算機集羣。

“非常大的文件”:指幾百MB,幾GB甚至幾TB的數據。Yahoo曾經在4000個節點上存儲上PB的數據。
“流式數據訪問”:是指數據被寫入一次,然後被多次讀取並分析計算。而且每次計算都幾乎要用到文件中的大部分數據,而不是隻用其中的第一行數據。
“普通商業計算機集羣”:是指Hadoop不要求運行於非常昂貴的可靠性很高的服務器上,而是設計成運行於普通的計算機上。這就意味着節點是不可靠的,節點故障退出集羣是很正常的事。HDFS就是設計成在節點故障時,不讓用戶有明顯的感覺。

相對應的,HDFS也有其不適用的場景。
“即時數據訪問”:HDFS不適合於即時系統。HDFS針對高吐吞量進行優化,對於處理大量數據有優勢,但不適合於那種在大量數據中處理一小部分,然後快速響應返回的系統。
“大量小文件”:文件元信息是存儲在namenode的內存裏的,100萬個文件,元信息將佔用namenode機器內存300M左右。因此,儘管幾百萬個文件可以承受,但幾十億個文件對於當前流行的硬件配置就吃不消了。
“大量寫操作和文件中間修改”:HDFS目前只支持單線程寫操作,並且只能在文件尾寫。不支持修改文件中的任意位置。(也許在以後的版本中會支持,但即使支持,也一定效率很差。)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章