一、前言
为了运行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路径如下:
也欢迎各位园友fork 和star。