谦先生的程序员日志之我的大数据生涯(1)

来源:互联网 发布:淘宝买刀 编辑:程序博客网 时间:2024/05/01 04:35

从一个初级程序员到高级程序员的经历


你好!我是谦先生,我是茫茫程序猿中的一猿,平凡又执着。

刚入行的时候说实话,啥都不懂,就懂点皮毛的java,各种被虐狗的感觉。又写js又写css又写后台。。。慢慢被虐出来了~开始掌握一些好多前端框架比如jqury、jquery ui、easyui、datagrid、zTree、extjs、boostrap、echart。。。各种各样的(XoX),后端也因为外包的项目各种各样,主流的框架如struts2、hibernate、mybatis、spring都要熟悉使用,但对于struts2与spring mvc,用得最多还是spring mvc

 

后来,工作久了有了许多代码的积累,发现一个问题,写过的代码复用起来总是需要改很多地方,我开始尝试尽可能的提高代码的通用型以及代码的扩展性。于是就开始搞设计模式,啃书啃开源框架的源码,万事学习模仿起嘛。之后就模仿着开源框架写了核心设计的代码,比如ioc容器、rpc框架、基于观察者的高可用中间件等代码。也仿写基于二进制的linux的权限管理并在项目中成功应用,优化了一般字符串存储的体量问题。

 

 

        随着时间的飞逝,公司越来越多的业务跟我挂钩了。慢慢的我在项目组中编码的能力也得到了认可,从一个新人变成了一个核心的开发成员,开始接触到软件架构的事情了。开始有同事协助我的工作,开发任务的安排不由得我不写接口文档,以及做项目的架构中很重要的数据库设计,也开始画各种UML来理清项目代码的各种关系。在外包的工作当中,有开发的工作,也有研发的工作,中间件设计与开发是最恶心的,常常会处理许多并发编程的问题,各种并发容器,比如LinkBlockingQueue、DelayQueue等各种队列,还有容量评估、高水位、系统阈值、QPS、RT等一大堆新认知,顿时发现这个世界太大了,这水好深。除了中间件带给我的痛苦,同时还有另一个恶心的就是mysql存储过程的提示,写了几遍再也不想写了。还有700多行有些甚至上千行的的sql的扩展开发,改哪哪疼,多么希望别再往里加需求或改需求了。也因为性能的事情也开始学习orcale优化器策略、索引设计、物化视图的设计跟jvm的知识,那些新老生代、标志压缩、TLAB、串并行收集器让我记起了那个寒冷的冬天。

 


 

项目经理开始让我去了解学习hadoop,linux熟练程度决定了我的掌握速度,我开始把下班的生活搬进linux的世界,一个月多都在使用linux shell去干活,迫不得已才能用windows(只能查东西),为了强化linux,开始学习集群的架构知识,今天把一个tomcat集群搭起来,明儿几天计划并实施nginx、Apache的负载均衡,又实施了集群优化,比如读写分离、动静分离等技术。后来想到一个问题,就是当负载服务器宕掉就会出现集群瘫痪的问题,于是就接触到了高可用,也发现了keeplive跟zookeeper这两个好东西。之后做压力测试的时候发现,nginx的峰值是4W左右、Apache就低很多,就开始研究他们的负载均衡。于是了解到他们是出于第七层的负载均衡只能做到请求派发,有一项技术叫LVS——软件实现的第四层负载均衡,跟F5的原理一样以转换IP达到的负载均衡技术,不过它是软件实现。还有基于一致性hash的session缓存层,跟几个常用的nosql研究。

 

一个月后发现,我的linux已经突飞猛进了,然后我开始去做学习hadoop体系,从第一个版本到第二个版本,他的生态也研究了如hive、hbase、zookeeper、sqoop,还有storm跟spark。开始尝试去从朋友拿到的数据,根据朋友描述的产品线做集群设计与部署,看着自己部署的集群能模拟朋友公司的生产环境运作,我感到很兴奋。之后也为了获得更多的数据去学习python跟nutch,还有solr跟elasticsearch的使用。在自己的公司也有大数据部门,后来成功通过了考核转到了大数据事业部,进入了我的大数据职业生涯。开始我遇到了许多问题,mr、hive的数据倾斜、storm、spark的join问题,还有基于elasticsearch的hive索引优化,以及hbase的二级索引实施的分布式问题。这个过程因为经常写运维脚本也强化了我的python跟linux shell能力,还掌握了scala的多范式编程。

 

 

在大数据事业部的日子一天一天的过去,也慢慢适应了与web不一样的业务需求,刚开始的时候就部署下环境,改了许许多多配置文件,还有一些日常的清洗工作、指标统计工作以及一些临时的处于问题排查的业务需求外,一天工作中剩下的时间还是挺多的。听说最近的项目也有不少跟模型有关,开始了解大数据的数据挖掘领域。通过同事朋友的交流还有网上市面的一些资料书籍,慢慢开始熟悉机器学习的各种算法在spark、mahout、还有mapreduce中的应用。比如基于频繁集项、分类、聚类等算法的舆情分析系统,以及过程中词库的设计、同义词、错写词的处理等一些关键问题,其次就是标签系统跟用户画像系统的开发,还有公交路段实时监测预测系统的开发过程。在这个学习的过程当中,如当初一样,往事模仿起,写了好些业务流程的架构开发,也开始在生产中投入自己在数据挖掘中的自身价值,如今已经有很多的数据挖掘开发经验了。。(上海尚学堂大数据培训谦先生原作,请多关注后续更多大数据相关技术文章)

 

写到这里,从web到大数据所经历的许许多多以后,我又一次看到了一个新的方向,那就是人工智能,也开始投入到人工智能的研究路上。同时也慨叹,作为一个IT技术人,迫切需要一种学无止境的精神才能抵得住技术的快速更替。



原创粉丝点击