從畢業到如今一年多裏確實學到了不少東西,可是就是本身太懶了,應該把學到的東西整理下來纔對。因此決定從如今開始慢慢整理工做中學到的東西,既是鞏固和梳理,也但願可以分享出來和你們一塊兒交流。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,開發確實節省不少時間,性能也不錯。