从毕业到如今一年多里确实学到了不少东西,可是就是本身太懒了,应该把学到的东西整理下来才对。因此决定从如今开始慢慢整理工做中学到的东西,既是巩固和梳理,也但愿可以分享出来和你们一块儿交流。html
那我先本身介绍下吧,我给本身的定位是数据开发工程师,两份工做中作的都是数据开发相关的东西,我对这个领域比较看好,相信将来的发展会愈来愈好。算法
去年10月份换了工做,以前一家公司是作社交媒体分析的,其实就是作data feed的。因为公司后期人员变更的关系,因此整个产品的后台技术我都有涉及,总结下主要有几个部分:架构
1.数据爬取。app
最简单的就是用Jsoup这样的 html解析器,可是有时候须要拿一些js返回的结果,须要在网页上执行点击这类的操做,那么就须要用自动化测试中经常使用的工具PhantomJs,selenium。框架
2.数据分析工具
爬虫都是实时的,那么爬取回来的数据须要一个streaming一个框架来处理,以前用到的是strom,但如今发现 storm仍是重了一点,若是公司考虑一直都在AWS上的话,能够考虑Amazon Kinesis,这个不管是开发维护的角度仍是机器成本的角度来看,都是不错的选择。性能
固然部分数据仍是须要去作一些运算。这部分主要是用spark。测试
中间件部分主要用了Redis。spa
3.RESTrest
主要用了restlet+Spring
1.推荐引擎
研究过PredictionIO,感受DASE这样的架构很不错,逻辑清晰,还有把算法包作成的模板,这样更换很方便。可是 customzing方面就不太好,小改动还好,改改模板什么的没有问题,可是你要去在这个DASE这个架构上作一些修改,那就比较麻烦了,这么说吧:虽然是opensource, 但毕竟人家仍是要赚钱的嘛。
以后考虑了多方面因素以后,咱们决定本身开发,固然也借鉴了PredictionIO的一些思想,计算部分也一样采用了Spark的MLLib,如今系统已经完成了,我我的比较满意。
2.Streaming Job
目前还在搭建一个BI平台,须要收集和处理app端的用户行为数据, 那么咱们考虑用Kinesis,开发确实节省不少时间,性能也不错。