大多數(shù)企業(yè)大數(shù)據(jù)應(yīng)用案例尚處于實(shí)驗(yàn)和試點(diǎn)階段,對(duì)于少數(shù)首次在生產(chǎn)環(huán)境部署Hadoop系統(tǒng)的用戶來說,最常遇到的就是擴(kuò)展問題,此類問題往往導(dǎo)致企業(yè)因噎廢食,終止大數(shù)據(jù)應(yīng)用項(xiàng)目。
部署和擴(kuò)展Hadoop系統(tǒng)是一件高度復(fù)雜的事情,如果用戶能提前對(duì)Hadoop擴(kuò)展可能會(huì)遇到的各種問題和危險(xiǎn)信號(hào)有所了解,就能避免很多“救火”場面。
以下是Hadoop大數(shù)據(jù)系統(tǒng)出現(xiàn)擴(kuò)展問題的七大危險(xiǎn)信號(hào):
危險(xiǎn)信號(hào)一: 永遠(yuǎn)進(jìn)入不了生產(chǎn)階段
大數(shù)據(jù)應(yīng)用從概念驗(yàn)證到生產(chǎn)環(huán)境是一個(gè)巨大的飛躍,Hadoop系統(tǒng)的可擴(kuò)展性將面臨巨大的挑戰(zhàn)。生產(chǎn)環(huán)境的數(shù)據(jù)規(guī)模產(chǎn)生的一些問題實(shí)驗(yàn)環(huán)境很難碰到。另外數(shù)據(jù)本身也存在差異,概念驗(yàn)證階段使用的測試數(shù)據(jù)集往往是不真實(shí)的,或者類型單一。
在進(jìn)入生產(chǎn)環(huán)境前,大數(shù)據(jù)團(tuán)隊(duì)需要對(duì)Hadoop系統(tǒng)進(jìn)行模擬真實(shí)數(shù)據(jù)規(guī)模的壓力測試,此類測試能夠檢驗(yàn)大數(shù)據(jù)應(yīng)用的可擴(kuò)展性和容錯(cuò)性能,還能幫你做出更加準(zhǔn)確的性能(資源需求)規(guī)劃模型。
危險(xiǎn)信號(hào)二: 分析計(jì)算任務(wù)不斷超時(shí)
當(dāng)Hadoop集群中運(yùn)行的大數(shù)據(jù)應(yīng)用很少或者只有一個(gè)時(shí),一切都行云流水,按部就班,但是隨著Hadoop集群的增長,數(shù)據(jù)分析任務(wù)的運(yùn)行時(shí)間變得難以預(yù)測起來。一開始,只是有零星的超時(shí)現(xiàn)象,問題容易被忽視,但隨著時(shí)間增長,超時(shí)問題會(huì)越來越嚴(yán)重,最后導(dǎo)致危機(jī)。
在危機(jī)爆發(fā)前,你必須提前采取行動(dòng),根據(jù)任務(wù)峰值調(diào)整計(jì)算性能規(guī)劃模型。
危險(xiǎn)信號(hào)三: 你開始告訴人們不要保留所有數(shù)據(jù)
危機(jī)出現(xiàn)的另一個(gè)征兆是數(shù)據(jù)保留時(shí)間窗口不斷縮水。一開始你想保留13個(gè)月的數(shù)據(jù)進(jìn)行年度分析。但是由于空間限制,你開始減少保留數(shù)據(jù)的月份數(shù)。到最后,你的Hadoop系統(tǒng)因?yàn)闆]有足夠多的數(shù)據(jù)而不再是“大數(shù)據(jù)”系統(tǒng)。
數(shù)據(jù)保留窗口的縮水是因?yàn)榇鎯?chǔ)的擴(kuò)展性遇到問題,這與前面的計(jì)算性能問題類似。當(dāng)你的容量預(yù)測模型出現(xiàn)問題時(shí),需要盡快調(diào)整。
危險(xiǎn)信號(hào)四: 數(shù)據(jù)科學(xué)家被“餓死”
任務(wù)負(fù)荷過重的Hadoop集群會(huì)扼殺創(chuàng)新,因?yàn)閿?shù)據(jù)科學(xué)家們將沒有足夠的計(jì)算資源來開展大型任務(wù),也沒有足夠的空間來存儲(chǔ)中間結(jié)果。
性能和容量規(guī)劃通常會(huì)忽略或者低估數(shù)據(jù)科學(xué)家的需求,在加之前面提到的對(duì)生產(chǎn)環(huán)境任務(wù)的估計(jì)不足,會(huì)嚴(yán)重限制數(shù)據(jù)科學(xué)家的開拓性和創(chuàng)新性工作。
危險(xiǎn)信號(hào)五:數(shù)據(jù)科學(xué)家們開始查看Stack Overflow
在Hadoop系統(tǒng)部署的早期,你的運(yùn)營團(tuán)隊(duì)與科學(xué)家緊密協(xié)作。運(yùn)營團(tuán)隊(duì)隨時(shí)為數(shù)據(jù)科學(xué)家提供支持。(編者按:類似串聯(lián)的協(xié)作模式)但是當(dāng)Hadoop 系統(tǒng)成功上線后,系統(tǒng)的運(yùn)維和擴(kuò)展任務(wù)就會(huì)讓運(yùn)營團(tuán)隊(duì)疲于奔命,這時(shí)候數(shù)據(jù)科學(xué)家遇到Hadoop問題就只好自己解決,例如經(jīng)常去技術(shù)問答網(wǎng)站Stack Overflow查看問題帖子。
危險(xiǎn)信號(hào)六:數(shù)據(jù)中心越來越熱
數(shù)據(jù)中心服務(wù)器的電力都不是按服務(wù)器的功率峰值配置的,但是一個(gè)Hadoop集群運(yùn)行任務(wù)的時(shí)候經(jīng)常會(huì)連續(xù)“拷機(jī)”數(shù)小時(shí),會(huì)燒壞功率不匹配的供電線路,同樣的問題也存在于制冷系統(tǒng)中。部署Hadoop系統(tǒng)時(shí)請(qǐng)確保數(shù)據(jù)中心支持其長時(shí)間全速運(yùn)行。
危險(xiǎn)信號(hào)七:費(fèi)用超支
基于IaaS的Hadoop部署,例如AWS,在支出上是失控的。一個(gè)月的費(fèi)用很有可能是上個(gè)月的三倍,遠(yuǎn)遠(yuǎn)超出你的預(yù)算。
性能規(guī)劃對(duì)于基于IaaS的Hadoop部署來說也是非常重要的,但是好的性能規(guī)劃只是開始,如果你需要擴(kuò)展IaaS上的Hadoop系統(tǒng),那么你需要學(xué)習(xí)Netflix在成本監(jiān)控和優(yōu)化系統(tǒng)上投入大量資金。