文件名称:大数据工程师学习计划.pdf
文件大小:290KB
文件格式:PDF
更新时间:2022-12-24 12:38:29
文档资料
⼤数据⼯程师学习计划 申明:本⽂旨在为普通程序员(Java程序员最佳)提供⼀个⼊门级别的⼤数据技术学习路径,不适⽤于⼤数据⼯程师的进阶学习,也不适⽤ 于零编程基础的同学。 前⾔ ⼀、背景介绍 本⼈⽬前是⼀名⼤数据⼯程师,项⽬数据50T,⽇均数据增长20G左右,个⼈是从Java后端开发,经过3个⽉的业余⾃学成功转型⼤数据⼯ 程师。 ⼆、⼤数据介绍 ⼤数据本质也是数据,但是⼜有了新的特征,包括数据来源⼴、数据格式多样化(结构化数据、⾮结构化数据、Excel⽂件、⽂本⽂件 等)、数据量⼤(最少也是TB级别的、甚⾄可能是PB级别)、数据增长速度快等。 如果你对⼤数据开发感兴趣,想系统学习⼤数据的话,可以加⼊⼤数据技术学习交流扣群:数字4583+数字45782,私信管理员即可免费 领取开发⼯具以及⼊门学习资料 针对以上主要的4个特征我们需要考虑以下问题: 数据来源⼴,该如何采集汇总?对应出现了Sqoop,Cammel,Datax等⼯具。 数据采集之后,该如何存储?对应出现了GFS,HDFS,TFS等分布式⽂件存储系统。 由于数据增长速度快,数据存储就必须可以⽔平扩展。 数据存储之后,该如何通过运算快速转化成⼀致的格式,该如何快速运算出⾃⼰想要的结果? 对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很⼤,所以出现了Hive,Pig等将SQL转 化成MapReduce的解析引擎; 普通的MapReduce处理数据只能⼀批⼀批地处理,时间延迟太长,为了实现每输⼊⼀条数据就能得到结果,于是出现了Storm/JStorm这 样的低时延的流式计算框架; 但是如果同时需要批处理和流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于 管理,所以出现了Spark这样的⼀站式的计算框架,既可以进⾏批处理,⼜可以进⾏流处理(实质上是微批处理)。 ⽽后Lambda架构,Kappa架构的出现,⼜提供了⼀种业务处理的通⽤架构。 为了提⾼⼯作效率,加快运速度,出现了⼀些辅助⼯具: Ozzie,azkaban:定时任务调度的⼯具。 Hue,Zepplin:图形化任务执⾏管理,结果查看⼯具。 Scala语⾔:编写Spark程序的最佳语⾔,当然也可以选择⽤Python。 Python语⾔:编写⼀些脚本时会⽤到。 Allluxio,Kylin等:通过对存储的数据进⾏预处理,加快运算速度的⼯具。 以上⼤致就把整个⼤数据⽣态⾥⾯⽤到的⼯具所解决的问题列举了⼀遍,知道了他们为什么⽽出现或者说出现是为了解决什么问题,进⾏学 习的时候就有的放⽮了。 正⽂ ⼀、⼤数据相关⼯作介绍 ⼤数据⽅向的⼯作⽬前主要分为三个主要⽅向: ⼤数据⼯程师 数据分析师 ⼤数据科学家 其他(数据挖掘等) ⼆、⼤数据⼯程师的技能要求 附上⼤数据⼯程师技能图: 必须掌握的技能11条 Java⾼级(虚拟机、并发) Linux 基本操作 Hadoop(HDFS+MapReduce+Yarn ) HBase(JavaAPI操作+Phoenix ) Hive(Hql基本操作和原理理解) Kafka Storm/JStorm Scala Python Spark (Core+sparksql+Spark streaming ) 辅助⼩⼯具(Sqoop/Flume/Oozie/Hue等) ⾼阶技能6条 机器学习算法以及mahout库加MLlib R语⾔ Lambda 架构 Kappa架构 Kylin Alluxio 三、学习路径 假设每天可以抽出3个⼩时的有效学习时间,加上周末每天保证10个⼩时的有效学习时间; 3个⽉会有(213+4210)3=423⼩时的学习时间。 第⼀阶段(基础阶段) 1)Linux学习(跟鸟哥学就ok了)-----20⼩时 Linux操作系统介绍与安装。 Linux常⽤命令。 Linux常⽤软件安装。 Linux⽹络。 防⽕墙。 Shell编程等。 2)Java ⾼级学习(《深⼊理解Java虚拟机》、《Java⾼并发实战》)---30⼩时 掌握多线程。 掌握并发包下的队列。 了解JMS。 掌握JVM技术。 掌握反射和动态代理。 3)Zookeeper学习 Zookeeper分布式协调服务介绍。 Zookeeper集群的安装部署。 Zookeeper数据结构、命令。 Zookeeper的原理以及选举机制。 第⼆阶段(攻坚阶段) 4)Hadoop (《Hadoop 权威指南》)---80⼩时 HDFS HDFS的概念和特性。 HDFS的shell操作。 HDFS的⼯作机制。 HDFS的Java应⽤开发。 MapReduce 运⾏WordCount⽰例程序。 了解MapReduce内部