直播推薦
企業(yè)動態(tài)
- 智造范式革命,新能源汽車全產(chǎn)業(yè)鏈技術(shù)耦合重塑百年生產(chǎn)邏輯
- 電費憑空消失一半?海爾AWE館內(nèi)建起一棟節(jié)能示范樓
- 華測儀器塞貝克系數(shù)電阻測試儀新產(chǎn)品上市
- AI賦能新一代工業(yè)軟件,第四屆工業(yè)軟件創(chuàng)新應(yīng)用大賽頒獎典禮圓滿舉辦
- 智能增長引擎:紛享銷客ShareAI產(chǎn)品白皮書(2025版)正式發(fā)布!
- 精度vs成本 摩方精密微納3D打印助推工業(yè)制造向新發(fā)展
- 商用少費電,家用幾乎0電費!海爾熱泵零碳采暖來了
- 從自動化到智能化,線束加工企業(yè)如何智領(lǐng)市場主流?
推薦展會
,Hadoop的存儲組件有已經(jīng)存活了十二年之久的HDFS,問世三年而用戶寥寥的KUDU,以及來勢兇猛的新晉網(wǎng)紅Ozone。
KUDU雖然有和HDFS一樣的水平擴(kuò)展能力以及近似HBase的高效隨機(jī)讀寫能力,但受限于其功能局限性以及和其他軟件之間的兼容能力不強(qiáng),因此目前主要作為存放"實時更新的,用來做快速分析的結(jié)構(gòu)化數(shù)據(jù)"的載體,這部分?jǐn)?shù)據(jù)量不會太大,比起HDFS中的數(shù)據(jù)應(yīng)該會小的多。
Ozone到目前剛剛推出了alpha 0.4.1版本,離正式release還有一段路要走,所以短期內(nèi)也只有小范圍的試用需求。
說到底,目前的存儲規(guī)劃還是要以HDFS為主。而對于HDFS,這里有幾個問題考量:
● HDFS容量
● 數(shù)據(jù)壓縮
● 硬件選擇
HDFS設(shè)計初衷是以多副本機(jī)制解決硬件的不可靠性,從而在節(jié)約硬件成本的情況下盡量提升數(shù)據(jù)的可用性與讀寫效率。HDFS通常默認(rèn)配置為3副本,結(jié)合HDFS的機(jī)架感知特性,3個副本通常按照如下分布:
● 將副本寫到離數(shù)據(jù)輸入client最近的同一rack數(shù)據(jù)節(jié)點上,如輸入client與集群數(shù)據(jù)節(jié)點分布在不同的機(jī)架上,則隨機(jī)寫入一個不太繁忙的數(shù)據(jù)節(jié)點。
● 將第二副本寫入與副本不在同一rack的數(shù)據(jù)節(jié)點上。
● 將第三副本寫入與第二副本同一rack的不同數(shù)據(jù)節(jié)點上。
在幾年前大數(shù)據(jù)產(chǎn)業(yè)發(fā)展伊始,企業(yè)中的數(shù)據(jù)量都還是”數(shù)據(jù)庫量級”的時候,數(shù)據(jù)庫軟件和專用存儲都非常昂貴,這樣做的確是實踐,既降低了軟硬件的成本,還提高了數(shù)據(jù)的可用性。然而技術(shù)發(fā)展日新月異,在企業(yè)的大數(shù)據(jù)發(fā)展終于進(jìn)入”大數(shù)據(jù)量級”的時候,即便是普通廉價的工業(yè)磁盤也因為集群過大,數(shù)量太多產(chǎn)生了經(jīng)濟(jì)方面的壓力。
多副本機(jī)制是否有必要,是不是造成了存儲資源的浪費?
Hadoop 3.X實現(xiàn)了EC碼(糾刪碼)機(jī)制,來減少數(shù)據(jù)存儲副本,提升數(shù)據(jù)的可用性。的EC碼是XOR編碼(異或操作碼),它的原理如下:
異或操作(XOR-2-1- 1024k策略)
異或操作是將兩個數(shù)據(jù)塊做異或操作,生產(chǎn)一個校驗碼,當(dāng)有一個數(shù)據(jù)庫丟失時,通過另一個數(shù)據(jù)塊或者校驗碼計算出丟失的數(shù)據(jù)庫信息。這樣的話,兩個數(shù)據(jù)塊只需要一個校驗碼塊就可以保障高可用性了,存儲的開銷從300%下降為150%。
這種情況是在只丟了一個數(shù)據(jù)塊的時候好用,那如果丟了兩個以上的數(shù)據(jù)塊呢?顯然異或操作就失效了。EC碼中的Reed-Solomon Codes編碼 (里德所羅門編碼,簡稱RS碼)是專門應(yīng)對這種情況的,RS碼通過線性代數(shù)里的矩陣運(yùn)算法則將多個數(shù)據(jù)塊(K個數(shù)據(jù)塊,即K階向量)與一個生成矩陣(Gt)相乘,得出一個包含包含K個數(shù)據(jù)塊和m個校驗塊的新向量,在不超過m個塊(數(shù)據(jù)塊和校驗塊)丟失的情況下,可以通過矩陣再次算出丟失的數(shù)據(jù)。RS碼在CDH中常用的有4種,分別是包括RS-3-2-1024k,RS-6-3-1024k,RS-10-4-1024k,RS-LEGACY-6-3-1024k,它們各自的存儲效率為:
RS碼策略存儲開銷
可以看出,使用了EC碼(無論是XOR碼還是RS碼)以后,存儲的開銷都從之前的300%下降到了150%左右,但是不是說EC糾刪碼代替原來的多副本機(jī)制就是更好的解決方案?或者說考慮使用磁盤陣列(RAID)的方式來提高數(shù)據(jù)可用性操作性更強(qiáng)?畢竟RAID方式也是使用了EC糾刪碼的原理(RAID5實現(xiàn)了XOR的機(jī)制允許壞掉一個副本,RAID6則實現(xiàn)了RS的機(jī)制允許壞掉2個副本)。
事情沒有這么簡單,多副本機(jī)制與EC糾刪碼碼機(jī)制相比,有以下特點:
多副本與EC碼
可以看出,EC糾刪碼雖然大大提升了磁盤利用率,但是其在數(shù)據(jù)恢復(fù)方面的表現(xiàn)是不太理想的,因為EC糾刪碼的加密解密過程大大依賴于CPU的能力,而數(shù)據(jù)恢復(fù)過程中,又需要網(wǎng)絡(luò)傳輸大量的數(shù)據(jù)。
在同一個集群中,同一份數(shù)據(jù)要么配置EC糾刪碼機(jī)制,要么配置多副本機(jī)制,兩者是互斥的?;谶@么一個前提,有benchmark測試表明,在未發(fā)生數(shù)據(jù)故障時,配置了EC糾刪碼和多副本機(jī)制的HDFS讀寫效率基本一致,但在發(fā)生了數(shù)據(jù)恢復(fù)時,多副本機(jī)制的HDFS讀寫效率要比EC碼機(jī)制的讀寫效率快3-4倍。在數(shù)據(jù)量超大,CPU配置不高以及網(wǎng)絡(luò)帶寬有限的集群環(huán)境里,這也是相對致命的問題。
要不要使用磁盤陣列(RAID)的方式?
其實配置磁盤陣列與配置HDFS糾刪碼實現(xiàn)原理是一樣的,但是磁盤陣列只在單個節(jié)點生效,HDFS糾刪碼則針對整個集群生效。換句話說,即便配置了磁盤陣列,但是單個節(jié)點的服務(wù)器如果由于磁盤以外的其他原因故障了,那數(shù)據(jù)就丟失了,這個風(fēng)險很大,因此使用HDFS糾刪碼要比單純使用磁盤陣列安全的多。
怎么選擇使用多副本機(jī)制還是EC糾刪碼?
通常建議熱數(shù)據(jù)較多,業(yè)務(wù)密集型的集群還是按照3副本機(jī)制進(jìn)行配置容量,而冷數(shù)據(jù)較多,以存放備份歸檔數(shù)據(jù)為主的集群可考慮以EC糾刪碼的方式來進(jìn)行配置容量,但是磁盤總?cè)萘坎粦?yīng)小于實際數(shù)據(jù)的大小的2倍。另外需要注意的是,使用EC糾刪碼只能在Hadoop 3.X以上的版本進(jìn)行。
HDFS上的數(shù)據(jù)可以啟用壓縮,通常這也是做存儲規(guī)劃時值得考慮的因素。對于一個在Hadoop發(fā)生的計算過程,以典型的MapReduce框架考慮,壓縮可以在三個階段處理:map任務(wù)階段,reduce任務(wù)階段,以及最終寫HDFS的階段。由于map任務(wù)階段和reduce任務(wù)階段主要是寫本地磁盤為主,因此主要考慮最后寫HDFS的階段的壓縮(spark等內(nèi)存計算引擎也只需要考慮最后寫HDFS的壓縮)。
HDFS支持的壓縮方式有Deflate,gzip,bzip2,LZO,LZOP,LZ4,Snappy幾種。他們的區(qū)別如下:
各種壓縮方式對比
以100M的常規(guī)文件(XML文件,來自http://mattmahoney.net/dc/textdata.html的enwik8.zip,非純文本)作為原始文件,各種壓縮方式的壓縮時間,解壓時間以及壓縮率比較如下:
各種壓縮方式性能表現(xiàn)
由上表可以看出,壓縮比是bzip方式,但是其效率實在是不高,在大數(shù)據(jù)量的時候,壓縮和解壓的時間耗費過長,不是壓縮方式。
綜合考慮各種因素,LZ4與Snappy是比較推薦的壓縮方式,性能和效率都還不錯。LZ4由于推出較晚,因為這樣,Snappy目前成為使用的壓縮方式。
由于集群中并不是所有數(shù)據(jù)都會被壓縮,通常來說,我們考慮集群的冷熱數(shù)據(jù)比為6:4,即60%的數(shù)據(jù)為冷數(shù)據(jù),這部分?jǐn)?shù)據(jù)被壓縮,而剩下40%為熱數(shù)據(jù),這部分?jǐn)?shù)據(jù)不壓縮。假設(shè)使用Snappy的壓縮機(jī)制,參考上表假設(shè)壓縮比為數(shù)據(jù),那么整體數(shù)據(jù)在壓縮完成后約為原始數(shù)據(jù)量的75%。
這樣的話有一個參考,如果原來啟用3副本機(jī)制,那么存儲只需規(guī)劃數(shù)據(jù)量的2.25倍即可。如果原來使用EC糾刪碼機(jī)制,那么存儲只需規(guī)劃數(shù)據(jù)量的1.5倍即可(同時使用EC糾刪碼和壓縮的情況下對CPU要求會非常高,并不推薦)。
討論完了HDFS的容量考慮與數(shù)據(jù)壓縮的問題;
如何選擇合適的硬件以支持HDFS服務(wù)呢?
HDFS底層可以是本地磁盤,可以是傳統(tǒng)的存儲設(shè)備,哪一個好一些?
首先,關(guān)于硬件選擇沒有好不好的問題,只有合不合適的范疇。在數(shù)據(jù)量不大的初期,使用本地磁盤是個性價比更好的方案,另外在數(shù)據(jù)讀寫效率上,本地磁盤也比存儲設(shè)備要優(yōu)秀的多。
而在數(shù)據(jù)量上升到一定程度,3副本帶來的磁盤經(jīng)濟(jì)成本和管理成本迅速上升時,低端的存儲設(shè)備優(yōu)勢開始表現(xiàn)出來:可以做數(shù)據(jù)分層,歸檔,監(jiān)控數(shù)據(jù)情況,管理便捷等,畢竟在不考慮性價比的情況下,存儲設(shè)備的功能是很強(qiáng)大的。
但數(shù)據(jù)量再繼續(xù)上升(PB往上),存儲設(shè)備的擴(kuò)展性開始受到了局限,而磁盤仍然可以繼續(xù)線性增加。所以在一個”大數(shù)據(jù)”量級的場景下,本地磁盤可能是一個”沒得選”的選擇。
如果用本地磁盤作為HDFS的存儲硬件,磁盤又該怎么選擇?
是用SSD盤,還是用SAS盤,還是用SATA盤?
從性價比的角度來講,一般不考慮把SSD盤用作HDFS的底層磁盤,畢竟當(dāng)容量超過TB級別后,SSD的價格非常昂貴,當(dāng)然財大氣粗的公司請無視該建議。而對于同等容量的SAS盤與SATA盤,目前市場上的價格差異上已經(jīng)不大了,考慮速寫效率以及性能穩(wěn)定性等因素,建議SAS盤。
大盤好還是小盤好?回答這個問題前,先了解幾個背景因素:
一、SAS盤分為大盤和小盤,其中大盤3.5寸,小盤2.5寸,市場上兩種尺寸的磁盤容量包括:
● 2.5寸:300G, 600G, 900G, 1.2T, 1.8T, 2.4T, 1T, 2T
● 3.5寸:1T,2T,4T,6T,8T,10T
二、2.5寸的盤通常有三種轉(zhuǎn)速,分別是7.2K rpm, 10K rpm, 15K rpm,具體為:
● 7.2K rpm:1T,2T
● 10K rpm:1.2T,1.8T,2.4T
● 15K rpm:300G, 600G, 900G
而3.5寸的盤統(tǒng)一只能達(dá)到7.2K rpm。
在了解以上兩個要素后,我們討論一下磁盤的性能問題,首先需要說明的是,磁盤的讀寫性能和其容量大小無關(guān)。
影響磁盤性能的有兩個指標(biāo)。一個是磁盤的IOPS,全稱是磁盤每秒處理的I/O請求數(shù)量。另一個磁盤數(shù)據(jù)傳輸率。一般數(shù)據(jù)傳輸率更多的依賴于磁盤的接口,對于同種接口數(shù)據(jù)傳輸率幾乎相同,因此IOPS是評價磁盤性能最重要的指標(biāo)。理論上,磁盤的IOPS計算公式如下:
1s/(Tseek+Trotation)
其中,Tseek是尋道時間,一般SAS盤的Tseek為4-8ms。具體來說,15K rpm的Tseek約為4ms,10K rpm的Tseek約為6ms,7.2K rpm的Tseek約為8ms。
Trotation為盤片旋轉(zhuǎn)延時,通常為磁盤旋轉(zhuǎn)半圈的時間表示,15K rpm磁盤的延時為60*1000/15000/2=2ms,同理,10K rpm的延時為3ms,7.2Krpm的延時為4ms。
則根據(jù)以上理論,可以得出:
15K rpm磁盤:IOPS=1000/(4+2)=166
10K rpm磁盤:IOPS=1000/(6+3)=111
7.2K rpm磁盤:IOPS=1000/(8+4)=83
由以上數(shù)據(jù)可以得出,使用15KPM的磁盤性能會是7.2KPM磁盤性能的2倍。使用10K rpm的磁盤性能會是7.2KPM磁盤性能的1.33倍。
15K rpm的磁盤由于其容量太小,一般不在實際的使用考慮之中,而10K rpm和7.2K rpm是實踐中用的最多的磁盤。10K rpm磁盤容量為2.4T,7.2K rpm磁盤容量為10T,幾乎為前者的4倍。
由此,在實際選擇中,如果HDFS的數(shù)據(jù)量不大且為計算密集型集群,對實時響應(yīng)要求較高時,建議使用10K rpm的小盤;如果HDFS有海量數(shù)據(jù)存儲的需求,那么還是10T的大盤好一些,即便這意味著讓渡一些性能出來,雖然集群數(shù)據(jù)處理的慢一些,但是它能處理更多的數(shù)據(jù)。
免責(zé)聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
2025第21屆鄭州工業(yè)自動化展
展會城市:鄭州市展會時間:2025-05-09