超級計算主要是電腦的費用,不是建筑的費用,所以很難估算。而且個人投資建設不僅是租金問題,如果有業務需求還是找深圳超算比較好,首先需要進行需求分析,目前就2大塊需求,太抽象,無法分解,數據分析,是什么數據的分析?要怎樣分析?數據記錄要怎樣記錄?實時記錄?還是定時記錄?等等,這些需求明確了以后,在進行需求任務分解,再來確定開發工作量,最后才能評估出價格。
你可能正在做數據分析、數據處理或是數據開發的工作,業務你被繁重的需求壓迫的失去了對進一步了解大數據內在或是周邊的情況,還記得你第一次拿著辛苦賺來的工資為自己買的電腦嗎?高配置過萬,低的配置也大概三四千,平均就按5000元人民幣算。我們對比下個人電腦和公司數據服務器的對比。
配置個人臺式機數據服務器
電源290W500W
硬盤500GB~1TB1TB~70TB
內存8g~16g16g/32g/64g
CPU8核16核以上
網卡帶寬12.8MB/S~128MB/S128MB/S~1280MB/S
服務器就是更高配置的計算機,其耗電更多、存儲更大、內存和cpu更強勁,其需要對外提供服務,所以其網卡帶寬更大。我們自己在家用的到的網絡下載速度能達到3-4MB/s就很不錯了,計算平臺中各節點的數據傳輸速度大概得在100MB/s-1000MB/s。以下分別講下網卡、硬盤、CPU、內存這4個方面對計算平臺的影響:
1、網卡帶寬對計算的影響:
我們具體計算一個網速傳輸問題,一個 100GB的文件在100Mb/s的帶寬下要傳輸多長時間:先換算單位
100 GB = 100×1024×1024 KB = 104857600 KB
100 Mb/s = 100×1024÷8=12800 KB /s
兩者相除:104857600 / 12800 = 8192 s
換算時間:8192 s = 136.5 min = 2小時16分30秒
也就是說,100GB的文件在 百兆網卡(12.8MB/S)下,需要2小時16分30秒秒完成傳輸。那么:
如果是千兆網卡(128MB/S),那么14分鐘內就可以完成傳輸
如果是萬兆網卡(1280MB/S),那么1.4分鐘內就可以完成傳輸
2、硬盤對計算的影響:
目前硬盤有固態硬盤(SSD)、機械硬盤(HDD )。目前,1TB機械硬盤大概在300元人民幣左右,而固態硬盤在1000元以上。機械硬盤的讀寫速度一般在100MB/s 左右,而一般固態硬盤的讀寫速度可達 500MB/s左右。雖然固態硬盤體積更小,性能更佳,但目前大數據存儲還是用機械硬盤,因為價格便宜,也易維護。固態硬盤目前常用于個人電腦,如果個人資金充足,可以給自己的電腦更新換代,用下固體硬盤,速度會提升明顯。
大數據平臺是I/O密集型的,數據是存儲在硬盤中的,在Hadoop平臺上,我們每一次的數據查詢工作,要從硬盤中讀取,每一次的數據寫入,要存儲在硬盤。一份數據可以切割后存儲在不同的硬盤上,而獲取數據時,也就需要從不同的硬盤中獲得。
3、CPU對計算的影響:
CPU核心數和線程數。
CPU個數即CPU芯片個數,CPU的核心數是指物理上,也就是硬件上存在著幾個核心。比如,雙核就是包括2個相對獨立的CPU核心單元組,四核就包含4個相對獨立的CPU核心單元組。
線程數是一種邏輯的概念,簡單地說,就是模擬出的CPU核心數。比如,可以通過一個CPU核心數模擬出2線程的CPU,也就是說,這個單核心的CPU被模擬成了一個類似雙核心CPU的功能。我們從任務管理器的性能標簽頁中看到的是兩個CPU。 對于一個CPU,線程數總是大于或等于核心數的。一個核心最少對應一個線程,但通過超線程技術,一個核心可以對應兩個線程,也就是說它可以同時運行兩個線程。
CPU之所以要增加線程數,是源于多任務處理的需要。線程數越多,越有利于同時運行多個程序,因為線程數等同于在某個瞬間CPU能同時并行處理的任務數。 因此,線程數是一種邏輯的概念,簡單地說,就是模擬出的 CPU 核心數。一個核心最少對應一個線程,但英特爾有個超線程技術可以把一個物理線程模擬出兩個線程來用,充分發揮 CPU 性能,即一個核心可以有兩個到多個線程。
簡單來說,CPU核心數越多,就可以越多同時處理計算任務。大數據中存儲是分布式的,而一個計算任務也可以拆分成不同的子任務,能夠讓互不干擾的子任務同時執行,顯然后大大縮短計算時間。
因特爾4核心的CPU,目前市場價格大概在1000元左右。
4、內存對計算的影響:
硬盤作為外儲設備,相對的,計算機有內部存儲的地方,這就是內存。一般的講,內存的大小目前限制著我們操作個人電腦的流暢度,也就是你自己電腦比較卡的時候(一個行政人員的電腦內存4g,而一個技術人員得電腦內存最好不低于16g),大多是內存資源的不足。目前1GB內存的購買價大概在50元人民幣,而1GB的硬盤價格是0.5元人名幣,兩者單價相差100倍。
1TB內存的價格是5萬元
100TB硬盤的價格也是5萬元
為什么相差真么大,因為內存對數據的讀寫速度比硬盤快很很很多,但如果要長久保留數據得把數據寫入磁盤。因為內存和硬盤的價格懸殊,所以MapReduce計算框架下,采取得是計算中間的數據會先寫入硬盤,后面的計算再把數據從硬盤讀入內存。打個比方,你有100GB的源數據,本來這100GB可以全部讀取到內存做計算,計算后把最終結果再寫入磁盤,但因為內存有限且在MapReduce計算框架下,硬盤空間換時間,必須得有中間結果數據寫入硬盤,作為緩沖,彌補內存的不足。所以為什么現在spark越來越流行,內存計算速度肯定快!
我們綜合帶寬、硬盤、CPU、內存,在資源一定的情況下,如果使用人很多,在資源分配上,需要排隊等待計算任務執行。一定的資源不可能同時被所有使用者同時計算,所以必然需要排隊。有的時候,你覺得你的sql跑的慢,并不完全是你sql太復雜,還有可能是你的sql任務還沒開始執行,正在排隊等待中。
進一步的思考,多臺計算機參與對同一文件的處理,如果這個文件足夠大,那么要這個文件分割儲存到不同的計算機上;為了防止數據丟失,文件都會復制兩個副本;為了提升計算效率,先就近計算存儲在每個計算機上部分文件,也就是每臺計算機分擔一份小任務。
是的,數據平臺保存一份數據,其實一般會保存3份同樣的數據。也就是你在hive建了一張500GB的表,其在數據平臺的實際大小會達到1500GB。
正因為大數據平臺這種分布式存儲、分布式計算的基本特性,隨著數據越多,服務器就得需要一批批的被采購。
1、機器的成本
10臺機器每臺64GB、30TB的服務器,每臺價格是5萬元左右,那么十臺就是50萬元。
2、機器的耗電
這里特別說下電費。
每臺服務器的電源大概是500W,1000W時為1度電,500瓦時就是0.5度電,公式為:
多少瓦÷1000瓦時×多少小時=多少度電
電費按每度0.8元,那么一臺服務器的24小時會用9.6塊錢。10臺服務器每年的用電量是35040元。電費一般是包括在下面要說的托管費用得,這里特別說明下。服務器在耗電下,也產生了大量的熱量,所以也服務器也需要存放在制冷系統下。10臺服務器每年的用電量就達3.5萬塊,那么1000臺每年就是得用300萬元,10000臺就得用3000萬元。規模越大,運行成本就越高。所以,巨頭互聯網公司一般都有自建的數據中心,建在西部。因為西部電費便宜,建在山洞也安全。用電成本絕對是要考慮的。
3、機器的托管費用
服務器托管收費標準是由一下幾個因素決定的:
1、服務器大小
2、IDC機房
3、運營商線路
4、帶寬大小
服務器需要提供穩定的服務,還得防火防盜,一般會找專業的機房服務,托管機器。托管費用一般包括:機位費+網絡帶寬費+電費+日常維護費用。每天臺機器一年的托管費用按6000元,10臺服務器的費用一年是6萬元。算上電費。10臺服務器每年的托管費用得10萬塊錢。
4、我們看數據平臺的人力成本
工資成本:一個大數據平臺大致在10人-30人規模,平均每人每月工資10000人民幣,按30人計算,一年的工資大概在400萬。
軟件成本:雖然大數據軟件大多是開源的,但前端產品大多都得自己開發,但是大多情況下自己開發出來的爛產品,不如老老實實花錢從外部買個,最后老板被說服,狠狠心,買。 30萬的軟件產品買起。
綜上:300TB、30人的數據平臺,一年的總花費:50萬的機器硬件投入 + 10萬的服務費(包括電費、機器托管費) + 400萬的人力工資 + 30萬的軟件服務費 =450萬-500萬間
注意這只是300TB的存儲情況,TB級別的,那么如果是PB級別的呢?到了PB級別的時候,數據平臺的分工將是特別明確,有搞數據接入的小組、有搞數據計算的小組、有搞數據倉庫的小組、有搞運維的小組、有搞產品前端的小組。都是要人的。水漲船高,同時也騎虎難下。花費怎么也得上千萬吧。
當數據規模小時,一般人力成本比機器貴,達到一定規模后,機器比人力成本貴。(如果你一定要深度搞大數據,一定要找個機器成本比人力成本要多的平臺。這樣說也不是沒有根據,如果人力成本比機器還貴,說明數據的規模還沒有那么大)。考慮數據規模,如果你想接觸到整個大數據采集,清洗,開發,應用的每一個環節,建議去規模比較小的平臺,因為你肯能有很大機會接觸到每個環節,能夠去做各個環節的項目,對整個數據處理流程會有更深的認識。如果想專研究在某項技術比如Kafka、Spark、Kylin等,就盡量去大平臺,專人專做會更有深度發展。
搞大數據既然這么貴,作為大數據平臺管理人員,或者使用人員,應該從哪些方面去節省成本?
1、不要搞大數據
如果要搞,要做好長期成本開銷的準備。不排除隨著時代發展,擁有像Hadoop這樣的數據平臺,會成為每個公司的標配,像人力、行政、會計部門一樣。但是數據平臺到底能夠給企業帶來多大的價值,是只起到運營支持的作用?還是能夠變現盈利?是需要考慮的,因為數據平臺在企業相當的時間內會一直是成本部門。或者換位思考下,如果你是老板,在下屬的慫恿下,你是否愿意拿出500萬來買設備。
2、數據的存儲格式及壓縮方法
規模越大,你將認識到存儲格式及壓縮方法的重要性。舉個常見的例子,你會把你的大文件壓縮后再發送郵件,或者存儲U盤攜帶。同樣數據平臺也需要有這種“壓縮意識”,壓縮最高可以節省約80%的空間,特別對于稀疏數據,一般常用的壓縮方法是Snappy、Gzip等。
壓縮方法有利于節省存儲空間,那么數據的存儲格式有助于節省計算資源。一般數據平臺的數據讀取操作高于數據修改寫入操作。在行式存儲格式(常見的text格式)下,我們用hiveSQL或者sparkSQL查詢某幾列的數據,雖然我們只是要表中的某幾列數據,但是會把涉及到這幾列的每一行的數據都要讀取到內存當中去,這樣就會加大對磁盤I/O、網絡帶寬、內存的開銷。為了降低這些不必要的開銷,列式存儲(常見的是parquet格式)是大數據首選的存儲方式,這樣你在sql查詢時,只需讀取select所選擇的列就可以了。
3、數據存儲策略方面
存儲策略包括的方面多,比如,怎么兼顧成本,取得包括內存、硬盤、cpu在內的計算資源合理、平衡使用,數據的冷熱分離,數據的生命周期管理等等,。“二八定律”也適用于大數據領域,那就是80%左右的數據是不經常用的,我們經常查詢的hive表,也就占全部表的20%。狠狠心,刪下數據吧!
4、數據的成本意識
大數據不僅是數據量大,數據復雜,經過上述的計算,相信讀者會意識到大數據的成本也非常高。但往往公司會存著歷史數據,舍不得刪,覺得以后會賣錢;一旦被寫入數據的表,員工也會覺得先留著,日后肯定用得著。隨著數據規模的上漲,平臺的擴大,大家對GB、TB這些存儲單位會有一定的麻木。到了一定規模,問題的主次順序可能發生了變化,但問題絕對還存在,只是被掩蓋。
上述內容是“「數據中心搭建需要多少錢」建一個數據中心要多少錢?”的介紹,小編后續會陸續為大家帶來相關知識,希望對你有所幫助,更多知識,請關注企盾分響。