Spark 是一個基于記憶體式的分布式計算架構。具有高性能,高效可擴充,容錯等優點。
今天講解一下spark的流計算,其實它也不完全是實時的流計算,算是一種準實時的流計算。
上圖講解
<a href="https://s3.51cto.com/wyfs02/M00/9D/8A/wKioL1mBkdWgOSwnAALuUoHNwWU764.png-wh_500x0-wm_3-wmp_4-s_2048984090.png" target="_blank"></a>
運作環境:需要linux環境下的spark環境
本例用的centOS 6.5x64 因為需要使用TCP協定傳輸資料,是以需要安裝一個nc插件。
安裝方式: yum install ncxxx 或者挂載CD光牒安裝
安裝後啟動nc -lk 9999 端口可以随便指定,最好是1024以上的就可以。
下面貼出代碼
java版本的
程式測試: 從linux端的nc 下輸入任意字元串,spark streaming會實時對輸入的資料做出統計。類似于wordcount. 除非手動kill這個程序,否則會一直運作下去。因為它的原理就是和自來水的水流一樣,是一連串的資料流。
運作結果展示:
<a href="https://s5.51cto.com/wyfs02/M00/9D/8A/wKiom1mBk-LCML2DAACguUayFE4171.png-wh_500x0-wm_3-wmp_4-s_2452299115.png" target="_blank"></a>
也可以用scala寫出同樣的程式,代碼量更少。
需要深入了解spark streaming的架構原理。
本文轉自 ChinaUnicom110 51CTO部落格,原文連結:http://blog.51cto.com/xingyue2011/1953031