一、前言
為了運行summingbird demo,筆者走了很多的彎路,並且在國內基本上是查閱不到任何的資料,耗時很久才搞定了demo的運行。真的是一把辛酸淚,有興趣想要研究summingbird的園友且聽筆者一一道來,大體可以將summingbird理解為Storm + Hadoop。
二、大數據處理快速預覽
大數據時代的來臨,將大數據處理分為了批量處理與實時處理兩個方向,批量處理的優勢在於容錯性好,因為數據時先存在本地或者是分布式的進行存儲,可以重復對數據進行處理,劣勢在於速度慢,要等到數據全部存入之后才開始批量處理。對於實時處理而言,優勢則是速度很快,實時進行計算,劣勢則是容錯性不好,因為數據流進內存再流出,篩選出有用的數據,而不是對所有的數據進行存盤處理,所以當想要再次運行之前的數據則是不可能,也就是其處理的數據不可在現性。單單靠批處理或者實時處理已經越來越難滿足多樣化的需求,勢必要將兩者融合起來進行處理。既保持着批處理的容錯性,又保持着實時處理的實時性。下面就是本文的主角-summingbird,無縫融合批量計算與實時計算。
三、學習summingbird所需要搭建的環境
筆者的機器OS為linux,要運行summingbird,搭建機器搭建的環境如下:
1.zookeeper
2.kafka
3.memcached
4.scala
四、學習summingbird所需要了解的技能
1.應該對sbt有些了解
2.對scala語言比較熟悉
3.對storm與hadoop的工作原理應該比較熟悉
五、Demo的探索運行
感興趣的園友可以在github上搜索summingbird,就對會其有大概的了解。當然也可以按照github官方教程來進行demo的運行,如果順利的話,是不會有結果的,因為GFW的存在,導致官方教程中的Twitter流無法順利接入到程序中。所以肯定是運行不了,筆者剛開始的時候也嘗試過,均已失敗告終,之后不斷google,並且在Twitter上不斷詢問項目的發起人。又開始不斷嘗試,又以失敗告終。之后再github找到了一個實例,該實例結合了storm和hadoop,因此心中一喜,繼續開始研究,按照步驟一步步開始,最后,結果還是失敗了。看錯誤是發現因為有些jar包取不到,還是GFW的原因,無法在twitter的maven倉庫中取得相應的jar包,由於筆者之前沒有研究過maven和sbt,接下來就開始學習sbt和maven,當然也沒有特別深入的學習,只是掌握一些基本的用法,能夠看懂sbt文件和maven文件。之后打開了項目的sbt文件,發現里面所依賴的庫被牆了,於是乎,開始改為oschina中的maven倉庫。
六、終於成功運行
具體的項目代碼已經托管到github上面,只需要按照步驟來,就可以得到正確的結果,也希望各位園有可以多多指教。下一步就開始從本地數據庫開始導入數據進行處理。
七、體會
學習大數據涉及到的知識面確實是挺廣,要掌握的知識很多很多,所以一定要扎扎實實的進行研究。不得不說中國的防火牆GFW確實是名不虛傳,厲害。在保護網絡的同時也確實是給開發者帶去了一些不必要的麻煩。However,最終還是成功運行了。謝謝各位園友觀看~
github路徑如下:https://github.com/leesf/summingbird-hybrid-example-china
也歡迎各位園友fork 和star。