一、前言
為了執行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。