您好,登錄后才能下訂單哦!
小編給大家分享一下Hadoop中HDFS優缺點有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
HDFS的優點:
1、處理超大文件
這里的超大文件通常是指百MB、甚至數百TB大小的文件。目前在實際應用中,HDFS已經能用來存儲管理PB級的數據了。
2、流式的訪問數據
HDFS的設計建立在“一次寫入、多次讀寫”任務的基礎上。這意味著一個數據集一旦由數據源生成,就會被復制分發到不同的存儲節點中,然后響應各種各樣的數據分析任務請求。在多數情況下,分析任務都會涉及數據集中的大部分數據,也就是說,對HDFS來說,請求讀取整個數據集要比讀取一條記錄更加高效。
3、運行于廉價的商用機器集群上
Hadoop設計對應急需求比較低,只須運行在低廉的商用硬件集群上,而無需在昂貴的高可用性機器上。廉價的商用機也就意味著大型集群中出現節點故障情況的概率非常高。HDFS遇到了上述故障時,被設計成能夠繼續運行且不讓用戶察覺到明顯的中斷。
HDFS的缺點:
1、不適合低延遲數據訪問
如果要處理一些用戶要求時間比較短的低延遲應用請求,則HDFS不適合。HDFS是為了處理大型數據集分析任務的,主要是為達到高的數據吞吐量而設計的,這就可能要求以高延遲作為代價。
改進策略:
對于那些有低延時要求的應用程序,HBase是一個更好的選擇,通過上層數據管理項目盡可能地彌補這個不足。在性能上有了很大的提升,它的口號是goes real time。使用緩存或多個master設計可以降低Clinet的數據請求壓力,以減少延時。
2、無法高效存儲大量的小文件
因為NameNode把文件系統的元數據放置在內存中,所有文件系統所能容納的文件數目是由NameNode的內存大小來決定。還有一個問題就是,因為MapTask的數量是由Splits來決定的,所以用MR處理大量的小文件時,就會產生過多的MapTask,線程管理開銷將會增加作業時間。當Hadoop處理很多小文件(文件大小小于HDFS中Block大小)的時候,由于FileInputFormat不會對小文件進行劃分,所以每一個小文件都會被當做一個Split并分配一個Map任務,導致效率底下。
例如:一個1G的文件,會被劃分成16個64MB的Split,并分配16個Map任務處理,而10000個100Kb的文件會被10000個Map任務處理。
改進策略:
要想讓HDFS能處理好小文件,有不少方法。利用SequenceFile、MapFile、Har等方式歸檔小文件,這個方法的原理就是把小文件歸檔起來管理,HBase就是基于此的。
3、不支持多用戶寫入及任意修改文件
在HDFS的一個文件中只有一個寫入者,而且寫操作只能在文件末尾完成,即只能執行追加操作,目前HDFS還不支持多個用戶對同一文件的寫操作,以及在文件任意位置進行修改。
以上是“Hadoop中HDFS優缺點有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。