
2016年硕士毕业入行大数据至今,换过三家公司,当前就职于某国企大数据工程师
1、 行业:这些年一直从事大数据行业,主要是公安类、平台类、电力大数据,具有一定的行业经验。
2、项目:
(1)fmdb的设计和开发。不过从自己负责的开发功能来看,对大数据的源码和设计运用不深。但是对大数据领域内解决方案的提出和实现,有了较为深刻的理解。
(2)spark自定义数据源开发;
基础知识:需要对spark sql的解析过程有这较为清晰的了解,对源码有一定深度的理解。不过目前长时间没有再去看,已经忘掉了很多。
(3)kafka +spark streaming +hive项目的实现:这是对几个常见组件的一次组合使用。
kafka 应用;
spark streaming应用级;基本架构只是初步了解。
(4)solr内核升级
作为一个平台级别的产品,完整的参与了solr内核升级的整个流程。
1)分析升级的必要性;比如社区版本较高,我司的版本较低,不具备竞争力优势。
2) 分析社区版本解决的jira单与我司产品发现的问题单是否有诸多关联,从而进行升级版本选型;
3)通过jar包比对工具来判断当前版本的客户端接口和待升级版本的客户端接口的区别
4)集成公司内部自研的新特性到开源版本。比如solr的ssl、kerberos认证
5)集成到公司FusionInsightManager内部平台中
(5)task任务管理
任务类型:spark sql、mr、普通javajob
公司自研:
oozie;
airflow:
dolphine;
(6) 元数据管理
统一sql实现的依赖组件
3、技能:
HDFS、yarn、hive、spark、es、solr、lucene的应用开发;
hdfs的基本原理;
yarn的基本原理;
hdfs常见的对文件、对目录的操作
Java scala开发,主要是java,可阅读scala源码;
kafka基本原理、以及Kafka offset处理;
Es、solr、lucene的使用及基本原理;
k8s的初步使用;
较为丰富的现场开发和运维经验
4、写这个,有两个目的:
(1)正视自己的当前实力;
(2)思考未来的规划
5、未来规划
经过三四个公司,都是大数据这行业的,从这几年的工作内容来看,每个公司都有自己的拳头产品,新人进入的时机或早或晚,遇到的情况可能会分为以下几种:
(1)运气很背,进入公司的时候,正好公司的拳头产品开发进入rc阶段或者ga阶段,此时厉害的你想发挥也发现没有用武之地。如果这个公司的搞的是平台类产品,而之后可能就是漫长的运维工作。像华为的FusionInsight版本迭代就比较慢,最快半年一出,剩下的工作主要是就修补bug、性能测试这些耗时耗力,但不容易出成绩的工作。如果公司的产品业务众多,客户存在很多定制化的情况,但是迭代再多,还是基本盘不怎么动,只是修修补补,想要提升技术也是难度很大,基本都会按照已有的思路修改,容易出现思维定式。
(2)运气很好,恰好赶上公司产品出划时代意义的产品,这种机会可遇不可求。好好干就是了,毕竟能看到自己经手的产品上线,给公司的发展带来业绩,这种感觉还是挺不错的。
(3)运气中等,进入公司后,很多情况身不由己,可能会搞全新的业务,自己以前的知识可能会放弃。这未必是坏事。但是可能会遇到很多基础问题,需要花费大量的时间去学习。
其实说了这么多,技术人员想要提高自己的技术,如果单纯的靠频繁的离职、跳槽来解决的话,可能会让你失望。每次离职,带来的不一定是正面激励,因为你不了解新公司,没有完美的工作,可能会陷入更大的失望之中。
如果不是薪资问题,单纯只想提升技术,怎么办呢?一个方法混迹于社区之中,至少做某个组件的contributor,毕竟这里的贡献是大家都认可的。
哎,一地鸡毛,太复杂了。。