天天看点

开始写博客,毕业一年的收获

从毕业到现在一年多里确实学到了很多东西,但是就是自己太懒了,应该把学到的东西整理下来才对。所以决定从现在开始慢慢整理工作中学到的东西,既是巩固和梳理,也希望能够分享出来和大家一起交流。

那我先自己介绍下吧,我给自己的定位是数据开发工程师,两份工作中做的都是数据开发相关的东西,我对这个领域比较看好,相信未来的发展会越来越好。

去年10月份换了工作,之前一家公司是做社交媒体分析的,其实就是做data feed的。由于公司后期人员变动的关系,所以整个产品的后台技术我都有涉及,总结下主要有几个部分:

1.数据爬取。

最简单的就是用Jsoup这样的 html解析器,但是有时候需要拿一些js返回的结果,需要在网页上执行点击这类的操作,那么就需要用自动化测试中常用的工具PhantomJs,selenium。

2.数据分析

爬虫都是实时的,那么爬取回来的数据需要一个streaming一个框架来处理,之前用到的是strom,但现在发现 storm还是重了一点,如果公司考虑一直都在AWS上的话,可以考虑Amazon Kinesis,这个无论是开发维护的角度还是机器成本的角度来看,都是不错的选择。

当然部分数据还是需要去做一些运算。这部分主要是用spark。

中间件部分主要用了Redis。

3.REST

主要用了restlet+Spring

现在的公司

1.推荐引擎

研究过PredictionIO,感觉DASE这样的架构很不错,逻辑清晰,还有把算法包做成的模板,这样更换很方便。但是 customzing方面就不太好,小改动还好,改改模板什么的没有问题,但是你要去在这个DASE这个架构上做一些修改,那就比较麻烦了,这么说吧:虽然是opensource, 但毕竟人家还是要赚钱的嘛。

之后考虑了多方面因素之后,我们决定自己开发,当然也借鉴了PredictionIO的一些思想,计算部分也同样采用了Spark的MLLib,现在系统已经完成了,我个人比较满意。

2.Streaming Job

目前还在搭建一个BI平台,需要收集和处理app端的用户行为数据, 那么我们考虑用Kinesis,开发确实节省很多时间,性能也不错。

博主之前的博客: http://my.oschina.net/u/1450520/blog,  之后会在两个博客同步更新。

持续更新中...

继续阅读