从零开始的大数据技术学习路线指南:带你轻松成为大数据开发工程师!1

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 从零开始的大数据技术学习路线指南:带你轻松成为大数据开发工程师!1

文章目录


一、前言

二、大数据的发展史

2.1 启蒙阶段:数据仓库的出现

2.2 技术变革:Hadoop诞生

2.3 数据工厂时代:大数据平台兴起

2.4 数据价值时代:阿里提出数据中台

三、大数据方面核心技术有哪些?

1. Java 语言

2. MySQL 数据库

3. Linux 操作系统

4. Hadoop 技术学习

5. 数据仓库 Hive

6. 数据采集 Sqoop / Flume / DataX

7. 快一点吧 Spark

8. 数据传输 Kafka

10. 任务调度 Oozie / Azkaban

11. 实时数据的处理 Flink / Spark Streaming

12. 数据对外(支撑业务)

13. 机器学习 Spark MlLib

四、大数据下的数仓体系架构

五、学习指南


一、前言


之前写了篇面经 《一个月面试近20家大中小厂,在互联网寒冬突破重围,成功上岸!》,有不少小伙伴留言和私信我关于大数据学习路线,以及咨询我一些关于有工作经验想转行大数据的问题,只言片语也讲不清,我花了一个月整理了一份我当初学习的大数据学习路线,从最基础的大数据集群搭建开始,希望能帮助到大家。


不过在开始之前,我还是希望大家能想清楚,如果自己很迷茫,为了什么原因想往大数据方向发展,还有就是我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?


是计算机专业,对操作系统、硬件、网络、服务器感兴趣?

是软件专业,对软件开发、编程、写代码感兴趣?

还是数学、统计学专业,对数据和数字特别感兴趣?


欢迎大家在评论区留言讨论 ( •̀ ω •́ )✧


这其实也就关系到大数据的三个发展方向:


平台搭建/优化/运维/监控

大数据开发/设计/架构

数据分析/挖掘


现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:


文件存储:Hadoop HDFS、Tachyon、KFS


离线计算:Hadoop MapReduce、Spark


流式、实时计算:Storm、Spark Streaming、Flink


K-V、NOSQL数据库:HBase、Redis、MongoDB


资源管理:YARN、Mesos


日志收集:Flume、Scribe、Logstash、Kibana


消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ


查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid


分布式协调服务:Zookeeper


集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager


数据挖掘、机器学习:Mahout、Spark MLLib


数据同步:Sqoop


任务调度:Oozie


……


眼花了吧,上面的有30多种吧,别说精通了,全部都会使用的,估计也没几个。


就我个人而言,主要目前是在第二个方向(开发/设计/架构),那我就从大数据的发展史讲起。由于自己经验有限,本文内容参考了圈内不少老师的观点,供大家参考和互相学习。


二、大数据的发展史


关于大数据的发展史,我觉得骆俊武老师在《AI 时代,还不了解大数据?》一文中讲的非常清楚。大数据在它近三十年的发展史中,共经历了5个阶段。


2020052316335112.png


2.1 启蒙阶段:数据仓库的出现


20世纪90年代,商业智能(也就是我们熟悉的BI系统)诞生,它将企业已有的业务数据转化成为知识,帮助老板们进行经营决策。比如零售场景中:需要分析商品的销售数据和库存信息,以便制定合理的采购计划。


显然,商业智能离不开数据分析,它需要聚合多个业务系统的数据(比如交易系统、仓储系统),再进行大数据量的范围查询。而传统数据库都是面向单一业务的增删改查,无法满足此需求,这样就促使了数据仓库概念的出现。


传统的数据仓库,第一次明确了数据分析的应用场景,并采用单独的解决方案去实现,不依赖业务数据库。


2.2 技术变革:Hadoop诞生


20200523170317137.png


2000年左右,PC互联网时代来临,同时带来了海量信息,很典型的两个特征:


数据规模变大:Google、雅虎等互联网巨头一天可以产生上亿条行为数据。


数据类型多样化:除了结构化的业务数据,还有海量的用户行为数据,以图像、视频为代表的多媒体数据。


很显然,传统数据仓库无法支撑起互联网时代的商业智能。2003年,Google公布了3篇鼻祖型论文(俗称「谷歌三驾马车」),包括:分布式处理技术MapReduce,列式存储BigTable,分布式文件系统GFS。这3篇论文奠定了现代大数据技术的理论基础。


苦于Google并没有开源这3个产品的源代码,而只是发布了详细设计论文。2005年,Yahoo资助Hadoop按照这3篇论文进行了开源实现,这一技术变革正式拉开了大数据时代的序幕。


Hadoop相对于传统数据仓库,有以下优势:


完全分布式,可以采用廉价机器搭建集群,完全可以满足海量数据的存储需求。


弱化数据格式,数据模型和数据存储分离,可以满足对异构数据的分析需求。


随着Hadoop技术的成熟,2010年的Hadoop世界大会上,提出了「数据湖」的概念。


关于数据湖的理论,大家可以看我的这篇博客。


初探数据湖(Data Lake),到底有什么用?让我们来一窥究竟…


企业可以基于Hadoop构建数据湖,将数据作为企业的核心资产。由此,数据湖拉开了Hadoop商业化的大幕。


2.3 数据工厂时代:大数据平台兴起


商用Hadoop包含上十种技术,整个数据研发流程非常复杂。为了完成一个数据需求开发,涉及到数据抽取、数据存储、数据处理、构建数据仓库、多维分析、数据可视化等一整套流程。这种高技术门槛显然会制约大数据技术的普及。


此时,大数据平台(平台即服务的思想,PaaS)应运而生,它是面向研发场景的全链路解决方案,能够大大提高数据的研发效率,让数据像在流水线上一样快速完成加工,原始数据变成指标,出现在各个报表或者数据产品中。


2.4 数据价值时代:阿里提出数据中台


2016年左右,已经属于移动互联网时代了,随着大数据平台的普及,也催生了很多大数据的应用场景。


此时开始暴露出一些新问题:为了快速实现业务需求,烟囱式开发模式导致了不同业务线的数据是完全割裂的,这样造成了大量数据指标的重复开发,不仅研发效率低、同时还浪费了存储和计算资源,使得大数据的应用成本越来越高。


极富远见的马云爸爸此时喊出了「数据中台」的概念,「One Data,One Service」的口号开始响彻大数据界。数据中台的核心思想是:避免数据的重复计算,通过数据服务化,提高数据的共享能力,赋能业务。


关于阿里数据中台,可以参考这篇转载自谭虎、陈晓勇老师的:


详解阿里云数据中台,一篇文章全面了解大数据“网红”


三、大数据方面核心技术有哪些?


大数据的概念比较抽象,而大数据技术栈的庞大程度将让你叹为观止。


大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、NoSQL数据库、数据仓库、机器学习、并行计算、可视化等各种技术范畴和不同的技术层面。首先给出一个通用化的大数据处理框架,主要分为下面几个方面:数据采集与预处理、数据存储、数据清洗、数据查询分析和数据可视化。


20200523174954314.png


数据采集:这是大数据处理的第一步,数据来源主要是两类,第一类是各个业务系统的关系数据库,通过Sqoop或者Cannal等工具进行定时抽取或者实时同步;第二类是各种埋点日志,通过Flume进行实时收集。

数据存储收集到数据后,下一步便是将这些数据存储在HDFS中,实时日志流情况下则通过Kafka输出给后面的流式计算引擎。

数据分析:这一步是数据处理最核心的环节,包括离线处理和流处理两种方式,对应的计算引擎包括MapReduce、Spark、Flink等,处理完的结果会保存到已经提前设计好的数据仓库中,或者HBase、Redis、RDBMS等各种存储系统上。

数据应用:包括数据的可视化展现、业务决策、或者AI等各种数据应用场景。


通过上述的内容,可能大家对大数据都有了初步的了解,接下来就是核心的部分,因为任何学习过程都需要一个科学合理的学习路线,才能够有条不紊的完成我们的学习目标。大数据所需学习的内容纷繁复杂,难度较大,有一个合理的大数据学习路线图帮忙理清思路就显得尤为必要。


1. Java 语言


以Java语言为基础掌握面向对象编程思想所涉及的知识,以及面向对象编程,然后主流的SSM、Spring Boot等开源框架最好也能掌握。


2. MySQL 数据库


MySQL数据库掌握关系型数据库的原理,主要是各种复杂SQL语句的编写,这会对后面学Hive数仓的HQL起到事半功倍的效果。


3. Linux 操作系统


因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解Hadoop、Hive、HBase、Spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会Shell就能看懂脚本这样能更容易理解和配置大数据集群。


4. Hadoop 技术学习


这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和Yarn。


HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。Yarn是体现Hadoop平台概念的重要组件有了它大数据生态体系的其它软件就能在Hadoop上运行了,这样就能更好的利用HDFS大存储的优势和节省更多的资源,比如我们就不用再单独建一个Spark的集群了,让它直接跑在现有的HadoopYarn上面就可以了。


4.1 学会百度与Google


不论遇到什么问题,先试试搜索并自己解决。Google首选,翻不过去的,就用百度吧。


4.2 参考资料首选官方文档


特别是对于入门来说,官方文档永远是首选文档。相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。


4.3 先让Hadoop跑起来


Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。


关于Hadoop,你至少需要搞清楚以下是什么:


Hadoop 1.0、Hadoop 2.0 MapReduce、HDFS NameNode、DataNode

JobTracker、TaskTracker Yarn、ResourceManager、NodeManager


自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。建议先使用安装包命令行安装,不要使用管理工具安装。另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0。


4.4 试试使用Hadoop


HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;

打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。


4.5 你该了解它们的原理了


MapReduce:如何分而治之;HDFS:数据到底在哪里,什么是副本;Yarn到底是什么,它能干什么;NameNode到底在干些什么;ResourceManager到底在干些什么;


4.6 自己写一个MapReduce程序


请仿照WordCount例子,自己写一个(照抄也行)WordCount程序,打包并提交到Hadoop运行。你不会Java?Shell、Python都可以。如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。呐,下面是我Hadoop专题的系列博客,希望能帮助到你打怪兽哈!…(* ̄0 ̄)ノ


【Hadoop】(一)分布式文件系统 HDFS


【Hadoop】(二)Hadoop 分布式安装


【Hadoop】(三)资源管理器 YARN 和分布式计算框架 MapReduce


【Hadoop】(四)Hadoop 序列化 及 MapReduce 序列化案例实操


【Hadoop】(五)MapReduce 如何解决数据倾斜问题


【Hadoop】(六)详解 HDFS 的数据流 (面试重点)


【Hadoop】(七)Yarn 详解


后面大数据技术栈的专题博客,我就不一一展开了,都是干货!


5. 数据仓库 Hive


这个东西对于会SQL语法的程序猿来说简直就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。


通过前面的学习,我们已经了解到了,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。


简单点来说就是,Hive的底层是MapReduce,你只要写HQL(和SQL差不了多少)就完事了! Σ(っ °Д °;)っ


-------> Hive 系列专题 (重要) !


此时,你的“大数据平台”是这样的 ( •̀ ω •́ )✧


20200523205508670.png


6. 数据采集 Sqoop / Flume / DataX


Sqoop主要用于把MySQL里的数据导入到Hadoop里的。当然你也可以不用这个,直接把MySQL数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意MySQL的压力。


Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。


阿里开源的DataX也非常好用,有兴趣的可以研究和使用一下。


-------> Flume 系列专题


-------> Sqoop 系列专题


如果你完成了上面的学习,此时,你的“大数据平台”应该是这样的(^∀^●)ノシ


20200523211819308.png



相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
1月前
|
存储 人工智能 大数据
云栖2025|阿里云开源大数据发布新一代“湖流一体”数智平台及全栈技术升级
阿里云在云栖大会发布“湖流一体”数智平台,推出DLF-3.0全模态湖仓、实时计算Flink版升级及EMR系列新品,融合实时化、多模态、智能化技术,打造AI时代高效开放的数据底座,赋能企业数字化转型。
536 0
|
3月前
|
数据采集 人工智能 分布式计算
ODPS在AI时代的发展战略与技术演进分析报告
ODPS(现MaxCompute)历经十五年发展,从分布式计算平台演进为AI时代的数据基础设施,以超大规模处理、多模态融合与Data+AI协同为核心竞争力,支撑大模型训练与实时分析等前沿场景,助力企业实现数据驱动与智能化转型。
361 4
|
4月前
|
存储 分布式计算 Hadoop
Hadoop框架解析:大数据处理的核心技术
组件是对数据和方法的封装,从用户角度看是实现特定功能的独立黑盒子,能够有效完成任务。组件,也常被称作封装体,是对数据和方法的简洁封装形式。从用户的角度来看,它就像是一个实现了特定功能的黑盒子,具备输入和输出接口,能够独立完成某些任务。
|
1月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
3月前
|
SQL 分布式计算 大数据
我与ODPS的十年技术共生之路
ODPS十年相伴,从初识的分布式计算到共生进化,突破架构边界,推动数据价值深挖。其湖仓一体、隐私计算与Serverless能力,助力企业降本增效,赋能政务与商业场景,成为数字化转型的“数字神经系统”。
|
3月前
|
存储 人工智能 算法
Java 大视界 -- Java 大数据在智能医疗影像数据压缩与传输优化中的技术应用(227)
本文探讨 Java 大数据在智能医疗影像压缩与传输中的关键技术应用,分析其如何解决医疗影像数据存储、传输与压缩三大难题,并结合实际案例展示技术落地效果。
|
3月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据在智能物流运输车辆智能调度与路径优化中的技术实现(218)
本文深入探讨了Java大数据技术在智能物流运输中车辆调度与路径优化的应用。通过遗传算法实现车辆资源的智能调度,结合实时路况数据和强化学习算法进行动态路径优化,有效提升了物流效率与客户满意度。以京东物流和顺丰速运的实际案例为支撑,展示了Java大数据在解决行业痛点问题中的强大能力,为物流行业的智能化转型提供了切实可行的技术方案。
|
4月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
|
4月前
|
存储 分布式计算 算法
Java 大视界 -- Java 大数据在智能教育在线考试监考与作弊检测中的技术创新(193)
本文探讨了Java大数据技术在智能教育在线考试监考与作弊检测中的创新应用。随着在线考试的普及,作弊问题日益突出,传统监考方式难以应对。通过Java大数据技术,可实现考生行为分析、图像识别等多维度监控,提升作弊检测的准确性与效率。结合Hadoop与Spark等技术,系统能实时处理海量数据,构建智能监考体系,保障考试公平性,推动教育评价体系的数字化转型。
|
4月前
|
SQL 缓存 监控
大数据之路:阿里巴巴大数据实践——实时技术与数据服务
实时技术通过流式架构实现数据的实时采集、处理与存储,支持高并发、低延迟的数据服务。架构涵盖数据分层、多流关联,结合Flink、Kafka等技术实现高效流计算。数据服务提供统一接口,支持SQL查询、数据推送与定时任务,保障数据实时性与可靠性。

热门文章

最新文章

下一篇
oss云网关配置