在创新驱动这个类别中,数字核心产业增加值占GDP比重要从2020年的7.8%,到2025年要增加到10%。这个概念大家可能还不是很敏感,跟着小林继续看下面另一张图。
我国在大力发展的数字经济核心重点产业中,其中包括大数据领域,如下图所示。政府大力推动大数据领域技术发展创新,实现数字化转型,大数据在未来有较大的发展潜力!
2020年是我国5G的元年,国家在大力建设 5G 的基础设施。2021年,5G手机可能会逐渐增长,将会是大数据爆发的1年。5G网络所产生的数据速率:每秒 10G 的数据量,这会使得各个公司的数据量爆发式增长。
此外,我国第一批大数据专业在2017年开设,2021年第一批大数据专业学生才毕业。因此,大数据领域人才紧缺,需要大量的数据研发、数据分析以及数据挖掘工程师。
2学习路线总论
未来想在互联网发展,应该怎么学?就大数据方向来说,我个人认为主要有三个方面:
第一,计算机基础知识是不可或缺的,如果你拥有扎实的基础知识,在遇到问题时可以快速认识到问题的本质,从而解决问题。我至今在不断在加强自己计算机基础知识的学习;
第二,大数据框架的技术原理,对于重点框架要重视企业级调优以及源码的学习。
第三,项目实战。学习了大量的技术需要结合项目场景去应用,才能加深你对技术的理解。
大数据是一个进可攻、退可守的方向。
进可以往人工智能方向发展,但是需要非常扎实的数学知识。
我非常赞同我导师曾经跟我说的一句话:“任何问题,最终都会归咎于数学问题”!因此较好的数学能力可以支撑你不断的挑战新的问题!
退可以往大数据应用开发方向发展,但是需要丰富的框架使用和调优经验。
2.1计算机基础
- 精通一门语言:Java,C,C++,Python,Go,Scala,等等。(大数据建议选择
Java
、Scala
或者Python
)我自己学习的是Java语言,语言只是一门工具,无需太过纠结。 - 数据结构与算法:链表,队列,堆,二叉树,排序,查找,贪心,回溯等。
- 计算机网络与基础:OSI七层体系,常用的TCP/IP四层体系。
- 操作系统:进程与线程,乐观锁与悲观锁,缓存一致性,CPU时间片调度。
- 数学:高等数学,线性代数,概率论与数理统计。
推荐数学是考虑到一些小伙伴要进一步往 AI 方向发展,而数学是机器学习的基石。你只有拥有了这些底层基础,才能支撑你走得更远!
2.2大数据组件
整个大数据知识体系学习需要花较长的时间,大数据框架也比较多,下图是我自学大数据的技术栈。我是依据目标企业的招聘要求,选择以下技术栈学习,还有其它的框架,可以视情况而定,选择要不要学。
Java是基础工具,我个人是学完JavaSE,重点对集合、多线程以及JVM
进行深入学习,JavaEE没有花时间学。如果你时间充裕,比如大二或者研一同学,可以深入学习JavaEE
,再进行后续的学习也行。
目前企业生产基本使用的是 Linux 系统,掌握 Linux 基本原理是未来必备技能。
Hadoop 是分步式系统基础架构,主要解决海量数据的存储和海量数据分析计算问题,包含HDFS,MapReduce,Yarn 三个组件。其它框架在此不作介绍了。
针对一个技术框架如何学习,可以参照我下面这个视频!我总结了框架学习要按照阶段去学,循序渐近,而不是一蹴而就,急功近利会导致你技术学的不够深入不说,更重要的是浪费了你的时间。
2.3项目实践
大部分非科班同学都会遇到的痛点,在学校没有实际的项目。但是找工作的时候,简历上至少需要23个项目,并且要有12个亮点项目。比如在某个项目中,你遇到什么困难,采用什么技术解决的?做了哪些优化?
关于项目这块,后面我有项目实战推荐!
3学习资料推荐
我自己作为一名非科班转型者,深知一份好的入门学习资料可以节约多少时间。因此,我对自己自学以来的历程,做了一下复盘,并且把我自己的学习路线以及自学的学习资料推荐给大家。
希望能够给转行的小伙伴们一点参考。主要包含了计算机基础知识、大数据框架学习、项目实战三个模块相关的入门视频和好的书籍推荐!
建议零基础同学先学习Java语言基础语法,一个月左右便可以把JavaSE学完,后续找面经查漏补缺!
之后搭建Linux虚拟机平台,为后续大数据框架学习作准备。
因为我的时间比较紧急,不仅要完成导师布置的任务,还要挤出时间学习。所以,我的计算机基础知识是穿插在大数据框架学习中间,面试前重点刷了一些常见的面试题。以下是我刷的Java面试题博客链接。
最全 Java 面试总结:
blog.csdn.net/thinkwon/ca…
3.1基础
编程语言基础:Java基础是所有后续大数据学习的基石。我最开始是通过看书学习,看完后没有什么感觉,幸好之后找到了尚学堂高淇的300集,这个视频里把每一个知识点都讲的非常全面,也会有详细的案例。如果你是零基础,建议看视频入门,代码一定要自己敲一遍,切忌眼高手低!
高淇三百集:
www.bilibili.com/video/BV1oy…
Java 推荐《Java编程思想》,有在线中文版
此外,还有Scala语言,因为后续要学到 Spark、Flink等框架,这些框架采用Scala编程极为灵活,所以需要学习Scala的编程规范。关于Scala学习,推荐尚硅谷老师的视频。
尚硅谷Scala语言入门:
注意:在这个阶段,Scala 语言可以先不学,可以在学习 Spark 之前学习!
数据结构与算法:强烈推荐左神的视频,他讲的内容基本上和企业面试相关,通俗易懂。我当时看的是一个在牛客网上讲视频:其中包括算法初级和进阶。在听这个视频前,最好去了解下基本的数据结构!可以从下面百度网盘中获取视频资料和课件!看完视频后,具备一定的基础了,可以把剑指offer刷完!
数据结构与算法视频链接:
提取码:3ojw
如果网盘链接失效,请添加我微信:a934614406,备注【左神算法】,我重新给你发一遍!
计算机网络与基础:我当时看的是B站方老师讲解的视频,讲的比较全面透彻,而且时间也不是很长,总共42节,每节平均40分钟左右,一周左右便可以看完,针对非科班同学特别友好!要留大把时间给后面技术框架学习,听完视频,可以去搜一搜相关的面经,可以查漏补缺。
方老师计算机网络链接:
操作系统:操作系统知识比较多涉及到的内容也比较细,如果你的时间充裕,且不着急面试找工作的话,你可以去B站搜索哈工大李治军老师的课程,老师会用Linux内核代码得视角帮助你理解操作系统得原理。
操作系统链接:
如果你时间紧急,想直接应对面试,这里给你分享一份总结好的操作系统重点面试知识!
请添加我微信:a934614406,备注【操作系统】,我给你发一份详细的操作系统面试知识!
数学理论基础:大数据与人工智能结合,那么数学基础是不可或缺的。但是,数学是学不完的,也没有几个人像数学专业的同学或者博士那样精通数学,所以大家要认识到,入门 AI 只要掌握数学中的基础知识就好,主要包含:高等数学、线性代数、概率论与数理统计三门课程。这里为大家整理了三篇简易的数学入门文章:
高等数学:zhuanlan.zhihu.com/p/36311622
线性代数:zhuanlan.zhihu.com/p/36584206
概率论与数理统计:zhuanlan.zhihu.com/p/36584335
推荐笔记:《机器学习的数学基础》和《斯坦福大学机器学习的数学基础》
提取码:iihb
如链接失效,请加我微信:a934614406,备注【数学基础】
3.2大数据框架
Linux:无论你做的是后端还是大数据,Linux
已经成为企业筛选人才的一个标准。我极力推荐观看尚硅谷韩顺平老师的Linux入门视频教程,清华大学的学霸,课程逻辑清晰,讲解透彻。
国内入门Linux
课程几乎选择该门课程。这也是我学习印象最深刻的一门课,看完后,只能一句卧槽,居然还能讲的的这么清晰!
尚硅谷韩顺平Linux链接:
可以结合《Linux就该这么学》这本术一起学习,加深对
Linux
理解!
Hadoop(重点):Hadoop
是大数据技术中最重要的框架之一,是学习大数据的第一课。
目前,Hadoop
已经从1.x
版本发展到现在的3.x
版本。Hadoop
一共包含3个组件:分别是最强的分步式文件系统HDFS
,海量数据并行计算框架MapReduce
,流行的资源管理系统Yarn
。
任何框架的学习,先搭建好环境,线上跑一个测试案例,之后再深入其原理。
HDFS有伪分布式、完全分步式以及高可用架构模型,重点了解HA架构模型以及各个角色的职责。
HDFS的架构模型主要包括以下角色:Namenode
(Active、Standyby
),Datanode
,JournalNode
,DFSZKFailoverController
(ZKFC
),SecondNamenode
。
虽SecondNamenode
应用较少,但还是要了解其工作机制。
MapReduce
的核心思想、详细工作流程,Shuffle机制也要重点掌握,面试会问。
Yarn
资源管理系统不仅适用于MapReduce
计算框架,同时也会被用于Spark
计算框架,所以它的工作机制也非常重要。
我推荐大家学习尚硅谷的Hadoop
教程,从原理到生产实践调优,再深入源码,非常透彻。
尚硅谷Hadoop
链接:
可以结合《Hadoop权威指南》第四版学习。
如果对 Hadoop 源码感兴趣,可以参考《Hadoop技术内幕》(董西成)和《Hadoop2.x HDFS源码剖析》这两本书。
ZooKeeper:ZooKeeper
是一个分步式协调管理组件,主要的典型应用场景是数据发布/订阅、分步式协调/通知、集群管理等。
你可以结合《从Paxos到ZooKeeper》这本书结合一起学,这本书不仅阐述了CAP
理论,把ZooKeeper
的核心原理讲的很透。小白可以从下面这个视频入门。
尚硅谷ZooKeeper链接:
space.bilibili.com/302417610/v…
注:视频仅作为初学者入门,要深入学习还需要看书和研究官方文档。
Hive:Hive
是一款开源数据仓库工具,它可以将结构型数据映射成一张表,但其底层使用的是MapReduce
,提供类SQL
查询,一般称之为HQL
。
初学者入门Hive
,可以从视频开始,重点需要了解内部表与外部表的区别,以及分区分桶等。
如果你要深入学习其内部原理及调优,可以去读一读《Hive编程指南》和Apache
官方文档,对企业级的调优有详细的阐述。
尚硅谷Hive链接:
HBase:HBase
是一个结构化数据的分步式存储系统,可扩展也支持海量数据存储的NoSQL
数据库,是每一个大数据从业者应该要掌握的基本框架。重点要掌握其架构原理,各个角色职责,Compact
流程和Region
流程。下面是入门 HBase
的视频教程。
尚硅谷HBase链接:
注:可以结合《HBase权威指南》和《HBase实战中文版》两本书,加深对 HBase 的理解。
Redis(重点!):Redis
是一个开源的 key-value
存储系统,支持存储的 value
类型相对更多,并且支持各种不同方式的排序,为了保存效率,数据都是缓存在内存中。
该组件无论是后端还是大数据,都是必会的一个框架。我学习一个新技术,先是通过视频入门,之后再去看相关书籍和官方文档,深入理解技术细节。
Redis
推荐大家看尚硅谷周阳老师讲的,就是该课程有点老,很多新的特性可能无法了解。我贴出了两个Redis
课程入门学习链接:
尚硅谷周阳老师Redis
链接:
2021最新入门到精通Redis
链接:
推荐书籍:《Redis设计与实现》和《Redis 深度历险:核心原理与应用实践》
Kafka(重点!): 作为高吞吐量的分步式发布订阅消息系统,Kafka 可以处理消费者规模的网站中所有动作流数据。
这里建议:先了解 Kafka 是解决什么问题的而产生的,再了解其基本架构,最后深入理解核心实现原理。
下面是 Kafka 入门视频链接:
尚硅谷Kafka入门链接:
推荐书籍:首推《深入理解 Kafka:核心设计与实践原理》,想要深入了解 Kafka 源码的,你可以跟着《Apache Kafka 源码剖析》一起看,可以让你顿悟!
Spark(重点!重点!重点!):Spark
支持了 Streaming
、SQL
、GraphX
、MLLib
等应用。但相较于 Hadoop
中的 MapReduce
计算框架,Spark
速度快10到100倍左右
另外,计算过程中,如果某一节点出现问题,事件重演的代价远低于 MapReduce
。Spark SQL
可以对结构化数据进行处理
Spark Streaming
主要用于实时流数据处理场景,支持多种数据源,DStream
是 Spark Streaming
的基础抽象
Spark MLlib
提供了常见的机器学习功能的程序库,GraphX
主要用于图计算。下面是我为大家筛选的 Spark 入门学习链接,这个视频主要是基于Scala 2.12
版本讲解,对最新的 Spark3.0
作了详细的介绍,是一套小白入门学习的好资料。
2021Spark
从入门到精通链接:
注:学习 Spark 之前,一定要先学习 Scala 语言。在编程语言基础中,已经给出了 Scala 的详细学习推荐!
推荐书籍:《learning Spark》、《深入理解Spark 核心思想与源码分析》
Flink(重点!重点!重点!):Flink
是一个分步式处理引擎,用于对无界和有界数据流进行状态计算。Flink 计算具有快速、灵巧、结果准确以及良好的容错性等一系列优点,被广泛用于各行各业的流式数据场景。
目前,国内形成以阿里为首的企业,腾讯,京东,滴滴,携程,美团等,都在使用 Flink
框架。Flink 在大数据的流式计算占据着非常重要的地位,每一个大数据人都应该要掌握这门技术。
Flink
给大家推荐的是尚硅谷武老师的课,清华毕业的武老师把技术知识点剖析得非常透彻,该课程主要包含两个模块:Flink 理论基础和基于 Flink 得电商用户行为分析项目实战。
尚硅谷Flink链接:
推荐书籍:《Flink原理、实战与性能优化》
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新