首页 > 代码库 > 2014半年小总结

2014半年小总结

2014半年小总结

    已经毕业工作快满两年了,从一家垄断国字号企业跳到某电商平台,应该是我的职业生涯第一跳了,也很荣幸地投身入互联网浪潮之中。没过多久就融入了这家朝气蓬勃的大家庭。回汉后,起初打算做机器学习、数据挖掘的相关工作,以能延续研究生的课题。不过作为新东家BI组第一位员工,不得不着手搭建基础数据平台。


工作成果与心得

基础数据平台和报表系统,爬虫

五个月,小半年,我们三兄弟的工作成果也是比较显著,在被领导否定第一版数据平台后,开始重新搭建新js埋点作为数据源的基础数据平台。

1. jugg,第一版数据平台,flume+hadoop+hive的架构

flume,作为读取本地历史日志文件的管道,监听数据,采集数据,将其日志文件按行读取到集群的HDFS之中供hadoop做处理。

  缺点: 单节点,未做冗余备份,加上本身的不稳定性,数据容易丢失,在机器死机就会丢失数据。

  由于目标框架是一个分布式的对日志进行海量数据收集框架。

  在hadoop上部署一个flume agent(使用flume把日志数上传到hdfs中),需将flume部署到每台服务器中去收集数据。

hadoop,对读入的hdfs文件数据进行mr处理,根据策略绘制访问黑名单(如一天内超过10000次PV,5秒20次PV),需经过map,分片,排序,重组,reduce一系列操作。然后通过黑名单过滤日志文件,将数据入到hive之中。

由于数据源为历史数据日志,误差(用户来源统计不准,),效率(没有做异步处理,一套流程走下来耗时),耦合高,成为这一版被否掉的重要原因。

 

2. 基础数据平台做出划分(PC端数据平台+移动端数据平台)

PC端数据平台,piwik.js +webservice + kafka + hadoop +hive

piwik.js,js作为用户埋点,返回用户点击行为 

Sermon,自定义名称的webservice,搭建于nginx反向代理集群之上,接受js回传数据,再将数据传递到kafka,此时觉得为kafka的生产者。

Kafka,kafka作为集群依赖于zookeeper环境,较Flume更加稳定和可靠,我们为其编写消费者程序来读取kafka中的topic并上传到分布式的HDFS之中,命名为magina(dota中的敌法师,专门用于净化魔法值,该消费者亦为此意),并把mapper用于消费处理,极大提升处理效率。

hadoop,hadoop2.5-cdh重新调整环境

hive: 编写hiveF语句和dump脚本,新加上hive到Mysql的落地处理,结合业务一些比较复杂的,将大表(Hive表中的数据)fetch到Mysql中。


3.爬虫

爬虫爬取商品销量方案1:scrapy+casperjs,scrapy控制爬取流程,casperjs模拟浏览器内核解析js返回结果。

爬虫爬取商品销量方案2:公司机密,保密。


存在的问题

1.直毕业以来将近两年时间,先后从事过分布式存储开发,分布式计算环境搭建与开发,java传统架构上的开发,爬虫开发。与我研究生的专业学术方向(实时数据流分析,数据挖掘)还是不太相吻合,总之目前为止,自己的职业生涯规划还不是很明显,没有一条很明确的主线,这个问题我还需要好好琢磨一下。
2.另外就我自身来说,对待工作时是认真的,但是有时候脾气过于急躁,有时候会缺少耐性,这方面有待改善。

2015展望

1.在加强自身技术提高的同时,保持自己的“学习能力”,务必深入理解java虚拟机,结合经验并能正确的进行性能调优。
2.熟练掌握一面新语言,如scala。掌握该语言能熟练基于spark框架做相关的开发,如实时分布式计算,机器学习等。
3.提升自身的数学能力,能掌握机器学习数据挖掘的相关算法。


2014半年小总结