大纲
一、前言
二、自我介绍
三、转折四、学习过程五、找工作
六、总结
一、前言
本篇文章由大数据学习群的同学供稿,他毕业一年,从传统金融IT转型到某大型互联公司做大数据开发,也从C++技术栈变成了大数据技术栈,如今已经入职8个月,也通过这篇文章总结一下他的转型过程。
二、自我介绍
普通本科,软件工程专业,2018 年毕业去了杭州一家金融大厂工作。下面说说我转行之前的公司,我所在的部门是最挣钱的部门--资管,我们的系统覆盖了全部的金融业务,除了保险业务。每天除了完成正常的任务之后,也学了很多金融的业务。工资起点不低,日子过得比较舒服,日常用C++写金融客户端业务代码。
去年年底开始学习大数据,今年3月份入职某大型互联网公司,平时工作主要用Spark和Hive,目前自学Flink中。虽然这份工作经常加班,比之前忙,但比起之前的工作,我还是比较喜欢现在的。
三、转折
虽然金融行业薪水可观,但是限于技术稍微有点老,压力不大,甚至还在使用 delphi。做了一段时间之后,发现不适合自己,由于就有了离职的想法。另一个原因是想换城市。去年(2018年)经济大形势不大好,于是也不敢轻易裸辞。此时的心情是:不甘心就这样下去,先选个适合自己的方向,伺机而动。
选方向的时候,权衡了自己熟悉的 Java 后端开发和陌生的大数据开发。自己当时的身份已经不是应届生, 如果选择 Java 后端开发这个已经日益激烈的赛道,当然门槛会更高了。反观大数据开发,市场还很大,更谈不上饱和、竞争激烈这一说,所以我选择了后者大数据开发方向。
四、学习过程
学习时间:上班带薪学习、下班后。
学习资料:a.在网上找的视频(某教育机构的资料)公众号后台回复【资料】,可以获取。b.大数据框架的官方文档。
下面主要说明一下自己的学习历程。
环境准备:
在自己的本地搞了五台虚拟机,开始搭建 Hadoop 集群,版本的话选择的 Hadoop 2.6.5(企业要的比较多的。)中间过程还算比较顺利,也踩了不少坑。搭建文档记录于此:https://www.yuque.com/cuteximi/env/env01
Linux 学习、网站架构学习:
Linux 这一部分过的比较块,主要是找感觉。网站架构学习,我选了一本书,叫做 《大型网站架构》,里面包含了网站架构的演变之路、突破架构瓶颈该如何让做...等等一系列引人思考的案例。
Hadoop 生态:
Hadoop 生态是自己投入时间最多的一部分,打基础比较重要。
HDFS:
- API 操作
- 命令行操作
- 权限管理
- 原理(文件上传、读取)
- NameNode HA
- 架构
- 文件压缩
Yarn:
- 架构
- 任务提交流程
- 队列
MR2:
- 架构
- 任务执行流程
ZK:
- 架构
- 应用场景
- paxos 算法
- ZK 在 Hadoop 中的作用
- Znode 操作
Hbase:
- API操作
- 架构
- rowkey
- 读写流程
Hive 以及数仓基础知识:
- Hive DML、DDL 操作
- 数仓建模基础知识
- Hive 参数调优
- HiveServer2
Spark 部分
- Core
- Spark SQL
- Streaming
- MLlib(了解)
我的目标是找工作,所以学习过程比较粗糙。本着先入行的原则,还好思路比较清晰,整个过程没有走偏。
2018年底,整个知识点都学完了。
关于大数据方面的书籍,我看了《离线和实时大数据开发实战》、《数据仓库结构设计与实施》、《Spark技术内幕》、《推荐系统实践》。挑重点部分看的,结合自己学的技术进行消化。
五、找工作
开始面试。
2019年2月份月末来到上海,美化了个人简历,开始投简历。目标不是大厂(想积累一段时间再头大厂),瞄准了中小型互联网公司。
JVM 是必备的功课,《深入理解Java虚拟机》 这本书起到了很大的作用。大数据方面,由于学习过程正好跨了一个年,大多都忘得差不多了,还好自己平时学习有记笔记的习惯,所以快速恢复到年前的状态不是问题。笔试题、面试呀看的峰哥整理的笔记。
面试了几家之后(不要学我,面试经验还是太少,不利于后面积累面试经验),成功入职一家大型互联网公司。
面试经历不是很多,除了问一些 JVM、算法等基础的东西,就是聊项目了。至于项目是怎么来的,前面我也提到了看的是培训机构的视频,项目自然也会有。结合大数据技术,映射到之前所工作的项目,足以可以应对面试。
六、工作中
工作内容离线和实时都有涉及。离线的指标都是日活、监控类数据。离线部分使用 Hive 做常规任务,presto 做一些简单的查询工作。实时的主要分为广告类、算法效果类、控量类业务。实时的技术栈还在使用 Spark(虽然 Flink 很火),但是 Spark 的生态更加完善,图计算、机器学习方面更加出色。
最近我也在一直调研 Flink,后面演变实时数仓要用到。不管是什么技术,能解决我们面临的问题就是好技术,门槛也不能太高,要兼顾团队中成员的学习成本。
七、总结
1.三动力:自我激励,自我认知,自我驱动。
2.执行力:记笔记,多总结。
3.面向面试学习虽然比较功利性,但能节约很多时间,效率也较高。
4.不要图眼前的安逸,居安思危。
5.数据一条不能少,这是我做数据开发的底线。
--end--
推荐阅读:五年Java外包转型大数据架构北美零基础转行开发求职面经一位材料专业研究生的Java转型复盘从车辆工程到大数据开发,我经历了什么?从安卓主管转型大数据开发,我经历了什么?两年车间技术员转型大数据开发,说说转型这点事儿