企業(yè)中處理數(shù)據(jù)的兩種主要方式(Hadoop、Storm)
2011年在海量數(shù)據(jù)處理領(lǐng)域,Hadoop是人們津津樂道的技術(shù),Hadoop不僅可以用來存儲海量數(shù)據(jù),還以用來計算海量數(shù)據(jù)。因為其高吞吐、高可靠等特點,很多互聯(lián)網(wǎng)公司都已經(jīng)使用Hadoop來構(gòu)建數(shù)據(jù)倉庫,高頻使用并促進了Hadoop生態(tài)圈的各項技術(shù)的發(fā)展。
下圖是來自360圖片搜索服務(wù)的圖片,可以看看Hadoop和storm所在位置。
一般來講,根據(jù)業(yè)務(wù)需求,數(shù)據(jù)的處理可以分為離線處理和實時處理,在離線處理方面Hadoop提供了很好的解決方案,但是針對海量數(shù)據(jù)的實時處理卻一直沒有比較好的解決方案。就在人們翹首以待的時間節(jié)點,storm橫空出世,與生俱來的分布式、高可靠、高吞吐的特性,橫掃市面上的一些流式計算框架,漸漸的成為了流式計算的首選框架。如果龐麥郎在的話,他一定會說,這就是我要的滑板鞋!
在2013年前后,阿里巴巴開源了基于storm的設(shè)計思路使用java重現(xiàn)編寫的流式計算框架jstorm。
那jstorm是什么呢?
在jstorm早期的介紹中,一般會出現(xiàn)下面的語句:JStorm 比Storm更穩(wěn)定,更強大,更快,Storm上跑的程序,一行代碼不變可以運行在JStorm上。
在最新的介紹中,jstorm的團隊是這樣介紹的:JStorm 是一個類似Hadoop MapReduce的系統(tǒng), 用戶按照指定的接口實現(xiàn)一個任務(wù),然后將這個任務(wù)遞交給JStorm系統(tǒng),Jstorm將這個任務(wù)跑起來,并且按7 * 24小時運行起來,一旦中間一個Worker 發(fā)生意外故障, 調(diào)度器立即分配一個新的Worker替換這個失效的Worker。因此,從應(yīng)用的角度,JStorm 應(yīng)用是一種遵守某種編程規(guī)范的分布式應(yīng)用。從系統(tǒng)角度, JStorm一套類似MapReduce的調(diào)度系統(tǒng)。 從數(shù)據(jù)的角度, 是一套基于流水線的消息處理機制。
實時計算現(xiàn)在是大數(shù)據(jù)領(lǐng)域中最火爆的一個方向,因為人們對數(shù)據(jù)的要求越來越高,實時性要求也越來越快,傳統(tǒng)的Hadoop MapReduce,逐漸滿足不了需求,因此在這個領(lǐng)域需求不斷。現(xiàn)在,Jstom在淘寶海量的數(shù)據(jù)和大量的業(yè)務(wù)場景的錘煉下,從開始的追隨者,使用者慢慢的演變成了流式計算技術(shù)的領(lǐng)導(dǎo)者。