Hadoop 3.x版本增添特性--糾刪碼介紹

    在hadoop 3.0版本中增添了一些新的特性,比如NameNode聯邦,糾刪碼,yarn時間線服務等。糾刪碼可以將HDFS的存儲開銷降低約50%,同時與三分本策略一樣,還可以保證數據的可用性。更準確的說是糾刪碼是一種比副本存儲更節省存儲空間的數據持久化存儲方法。比如Reed-Solomon(10,4)標準編碼技術只需要1.4倍的空間開銷,而標準的HDFS副本技術則需要3倍的空間開銷。由於糾刪碼額外開銷主要用於重建遠程讀寫,它通常用來存儲不經常使用的數據(冷數據)。另外,在使用這個新特性時,用戶還需要考慮網絡和CPU開銷。Hadoop 2.x可以通過複製(浪費空間)來處理容錯,Hadoop 3.x可以通過Erasure編碼處理容錯。

    默認情況下,HDFS的數據塊都會保存三個副本。副本提供了一種簡單而健壯的冗餘方式來最大化保證數據的可用性。數據的多副本同時可以儘量保證計算任務的本地化。但副本方式成本是較高的:默認情況下三副本方式會在存儲空間或其他資源(比如寫入數據時的網絡帶寬)中產生200%的開銷。對於較少訪問的數據集(對集羣的I/O影響相對不大),它們的第二個或者第三個副本會比較少訪問,但是仍會消耗相同的存儲空間。

    面對上述描述的情況,可以使用糾刪碼(ErasureCoding)來代替多副本的方式,它使用更少的存儲卻可以保證相同級別的容錯。在典型配置下,與三副本方式相比,EC可以將存儲成本降低約50%。基於這個考慮,Cloudera與Intel的工程師在HDFS-7285(https://issues.apache.org/jira/browse/HDFS-7285)下啓動並推動了HDFS-EC項目。目前HDFS-EC已經在CDH6和HDP3中發佈。

 

糾刪碼技術的優劣勢:

  • 優勢

糾刪碼技術作爲一門數據保護技術,自然有許多的優勢,首先可以解決的就是目前分佈式系統,雲計算中採用副本來防止數據的丟失。副本機制確實可以解決數據丟失的問題,但是翻倍的數據存儲空間也必然要被消耗。這一點卻是非常致命的。EC技術的運用就可以直接解決這個問題。

 

  • 劣勢

EC技術的優勢確實明顯,但是他的使用也是需要一些代價的,一旦數據需要恢復,它會造成2大資源的消耗:

 

1.網絡帶寬的消耗,因爲數據恢復需要去讀其他的數據塊和校驗塊

2.進行編碼,解碼計算需要消耗CPU資源

 

概況來講一句話,就是既耗網絡又耗CPU,看來代價也不小。所以這麼來看,將此技術用於線上服務可能會覺得不夠穩定,所以最好的選擇是用於冷數據集羣,有下面2點原因可以支持這種選擇:

 

1.冷數據集羣往往有大量的長期沒有被訪問的數據,體量確實很大,採用EC技術,可以大大減少副本數

2.冷數據集羣基本穩定,耗資源量少,所以一旦進行數據恢復,將不會對集羣造成大的影響

 

出於上述2種原因,冷數據(集羣)無疑是一個很好的選擇。當然如果採購的硬件支持Intel CPU的ISA-L,使用其實也是不錯的,畢竟比三副本的方式還優秀!

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

      用人品去感動別人,用改變去影響別人,用狀態去燃燒別人,用行動去帶動別人,用陽光去照耀別人,用堅持去贏得別人,要求自己每天都去做與目標有關的事情,哪怕每天只進步一點點,堅持下來你就是最優秀卓越的!歡迎大家加入大數據交流羣:725967421     一起交流,一起進步!!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------- 
 

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