vlambda博客
学习文章列表

我是DBA,从大数据小白到阅读框架源码,薪资翻了三倍

前言

今天分享的这位是学习群的小伙伴,他从早期的大数据零基础,到现在整理了很多源码级博文。从早期的群里问问题,到现在帮其他群友解答问题,进步非常大,年前也完成了跳槽,薪资翻了3倍。


自我介绍

我是2018年二本学校毕业,来到一家小公司,成为月薪不高的社畜。在2019上半年接触到大数据,正好后面遇上裁员,领到大礼包开始学习大数据,在年末拿到薪资比较满意的offer,与之前相比翻了接近三倍。

为什么要学习大数据

前公司业务会涉及到大数据处理场景,再加上对于CRUD和运维部署厌烦,于是对其产生浓厚兴趣。真正要了解一个行业如何,看招聘薪资与热度就知道,毫无疑问大数据绝对是Top1。
如果我在Java Web的赛道上竞争,想要达到大数据的薪资,付出的时间和精力是巨大的,还得加上一些好运气才行。这样一对比,选择很容易的做出来,趁着年轻换条竞争不算激烈的赛道,积累技术经验之后说不定会吃到更多的行业红利。

转型之前的工作
才入公司先做的DBA,每天用SQL在公司自研的Web系统上计算各类指标和配置页面,现在回想起来这类工作是非常毁人的,三个月之后也幸好跟领导关系好,加上之前在学校自学的Java Web成功转岗,负责一些业务的研发和部署。
在转岗之后,做了一段时间之后逐渐厌恶CRUD,正好就是这段时间接触到大数据。但是遇上公司想把部署做成自动化并有监控,于是我接下这个任务,上班研究Docker、Jenkins、K8s等,下班在B站上找Hadoop视频看,但是也只是断断续续看看并没有整理输出,没有上手操作。现在回想起来,付出了时间但是没有整理输出真是浪费,各位一定不要学我这样。 
时间来到国庆前夕,经历差不多两个月的调研和开发,成功完成Web端自动化平台,大大减少部署时间和故障数量。就在我沉浸在成就感中时,却被通知被裁,回到家思考是否要脱产学习大数据,最后想到反正有大礼包,不如拼一下,于是开启我的长达两个半月的自学之路。

习过程
前文也说到视频是在B站上找的,在对比各个机构的视频之后,个人比较推荐若泽数据和尚学堂,尤其是若泽数据倡导直接从官网学习,这点对我触动很大,导致之后有大半时间是在阅读各个组件的官网,比如Spark,Flume,Hadoop,Kafka等。
其中尤其是Spark官网写的很全,建议全部阅读一遍,基本你就会知道如何编译适合CDH的Spark版本、如何调优、RDD/SQL/Streaming各类算子以及内存模型、结构化流该怎么玩等等,在这里顺便吐槽一下Azkaban的官网,依据他写的第一步编译就有问题。
针对于学习大数据的环境,我看许多人直接上手集群,其实一开始单机环境足够了,相比之下能够省下不少钱,也能减少许多精力和时间在搭建环境上,然后在后期要学习CDH时候,只需要在阿里云上使用按时付费的机器来搭建就好,搭建之后向我一样把过程记录下来就好。
以下是我详细的学习各类的知识点:
  • Hadoop
    • 工作流程(Shuffle)
    • 实现全局排序与局部排序
    • 实现join操作
    • 数据倾斜
    • 单机架构
    • 工作流程
    • 资源如何配置
    • 三种调度器
    • 单机架构
    • 读写流程
    • 副本策略
    • 单机环境中SNN如何工作
    • HA架构
    • 故障案例:例如block块损害该怎么修复
    • 如何编译支持各类压缩
    • HadoopAPI使用
    • HDFS
    • Yarn
    • MapReduce
  • Zookeeper
    • 单机/集群部署
    • 过半机制
    • 选举制度
  • Flume
    • Source
    • Channel
    • Sink
    • Interceptors
    • Channel Selector
    • Sink Precessors
    • Taildir
    • Exec
    • Spooling
    • Avro
    • 自定义
    • Memory
    • File
    • HDFS
    • Logger
    • Kafka
    • Avro
    • 自定义
    • 架构
    • 工作流程
  • Scala
    • List
    • Map
    • Array
    • Set
    • case class
    • 伴生对象/类
    • 数据类型
    • 方法和函数
    • 循环
    • 类和对象
    • 集合以及算子
    • 模式匹配
    • 隐式转换
  • Spark
    • DStream概念
    • Source
    • Transformations
    • Output
    • Performance Tuning
    • Kafka对接方式以及消费语义
    • DF/DS API
    • 外部数据源
    • Tuning
    • 概念
    • Transformations
    • Action
    • Cache
    • 累加器和广播变量
    • Shuffle源码实现
    • 内存模型
    • 支持CDH
    • Building
    • 架构以及工作流程
    • RDD
    • SQL
    • Streaming
    • Yarn提交作业流程以及如何提交
    • Spark调优
  • Kafka
    • 单机/集群部署
    • 常用命令
    • 核心概念
    • offset管理
    • 怎么保证数据一致性
    • 调优
  • HBase
    • HBase-CDH环境部署/单机部署
    • 核心概念
    • 逻辑/物理模型
    • 架构以及读写流程
    • RK设计
    • 调优
PS:网上很多人说学习Spark要搭建standlone,完全没必要直接local模式足够。

面试经历

由于我在年底开始面试,由于我的工作年限不是太长,把目标放在中小互联网公司上。 这里给各位一个小小的建议,针对你要投递的公司,按照它的的JD稍微修改简历,会使得面试机会增加。  
在面试之后习惯性总结,根据面试题来查漏补缺,在这段时间内,我又重新学习了JVM、Docker、设计模式等,将其形成笔记,方便以后跳槽复习。
面试其实更多是谈论项目,项目是锋哥帮忙整合的,结合之前各个技术点和公司业务,形成自己的东西,面试不是太大问题。经历差不多一个月的面试,成功入职拿到还比较满意的薪水,唯一遗憾没能去成大城市。

总结

1.学习东西一手资料全在官网,习惯看英文文档。


2.学习过程一定要形成笔记或者写博客来记录,方便之后复习。


3.学习目标一定要以JD为准,效率最快以及保证技术不会落后。


4.习惯设定目标激励自己,实现自我驱动。


5.面试能够走内推就走内推,人脉很重要。


6.前期找个人带带,可以少走很多弯路。

资料链接:

  • 我的博客: https://liverrrr.fun/
  • B站视频:
  • https://space.bilibili.com/356836323/video


--end--



推荐阅读:





扫描下方二维码
添加好友,备注【 交流群
拉你到学习路线和资源丰富的交流群