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

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


7. 快一点吧 Spark


其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。Spark SQL 应运而生,它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。


特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。


你还需要:


掌握Spark的运行原理与架构,熟悉Spark的各种应用场景


掌握基于Spark RDD的各种算子的使用


掌握Spark Streaming针对流处理的底层原理


熟练应用Spark SQL对各种数据源处理


熟练掌握Spark机器学习算法库


达到能够在掌握Spark的各种组件的基础上,能够构建出大型的离线或实时的业务项目


是不是有些慌张,哈哈哈,慢慢学啊,Spark 超级重要!(;´д`)ゞ


-------> Spark SQL 系列专题


对了,别忘啦,此时你顺便需要熟悉(掌握)两门新语言了,惊喜吧!(ಥ _ ಥ)


-------> Python 基础系列专题


-------> Scala 基础系列专题


20200523220400726.png


8. 数据传输 Kafka


这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来。


你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情,而不是你给的问题。ㄟ( ▔, ▔ )ㄏ


这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS上。


目前 Flume + Kafka,在实时流式日志的处理非常常见,后面再通过Spark Streaming等流式处理技术,就可完成日志的实时解析和应用。


-------> Kafka 系列专题 !!


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


20200523221012234.png


从前面的学习,已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务之间又存在一定的依赖性,比如,必须等数据采集任务成功完成后,数据计算任务才能开始运行。如果一个任务执行失败,需要给开发运维人员发送告警,同时需要提供完整的日志来方便查错。


10. 任务调度 Oozie / Azkaban


不仅仅是分析任务,数据采集、数据交换同样是一个个的任务。这些任务中,有的是定时触发,有点则需要依赖其他任务来触发。当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab远远不够了,这时便需要一个调度监控系统来完成这件事。调度监控系统是整个数据平台的中枢系统,类似于AppMaster,负责分配和监控任务。


-------> Oozie 系列专题


-------> Azkaban 系列专题


你的“大数据平台”升级了 (ง •_•)ง!


20200523221449601.png


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


在前面讲Kafka的时候提到了一些需要实时指标的业务场景,实时基本可以分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、分钟级。


对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming,简单业务场景 Kafka Streams 也能搞定,当然现在最火的是Flink 。


是不是晕了,这么多流式处理框架,我该怎么选择呢?::>_<::


看这里:Storm vs. Kafka Streams vs. Spark Streaming vs. Flink ,流式处理框架一网打尽!


-------> Flink 系列专题


------->Spark Streaming 系列专题


你的“大数据平台”变得更加强大了 (●ˇ∀ˇ●)!


20200523222930832.png


至此,你的大数据平台底层架构已经成型了,其中包括了数据采集、数据存储与计算(离线和实时)、数据同步、任务调度与监控这几大模块。接下来是时候考虑如何更好的对外提供数据了。


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


离线:比如,每天将前一天的数据提供到指定的数据源(DB、FILE、FTP)等;离线数据的提供可以采用Sqoop、DataX等离线数据交换工具。


实时:比如,在线网站的推荐系统,需要实时从数据平台中获取给用户的推荐数据,这种要求延时非常低(50毫秒以内)。


根据延时要求和实时数据的查询需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。


分布式数据库HBase,这是Hadoop生态体系中的NOSQL数据库,它的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MySQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。


了解MongoDB及其它分布式数据库技术,能够掌握分布式数据库原理、应用场景、HBase数据库的设计、操作等,能结合Hive等工具进行海量数据的存储于检索。


OLAP分析:OLAP除了要求底层的数据模型比较规范,另外,对查询的响应速度要求也越来越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的数据模型比较规模,那么Kylin是最好的选择。


即席查询:即席查询的数据比较随意,一般很难建立通用的数据模型,因此可能的方案有:Impala、Presto、SparkSQL。


这么多比较成熟的框架和方案,需要结合自己的业务需求及数据平台技术架构,选择合适的。原则只有一个:越简单越稳定的,就是最好的。


-------> HBase 系列专题


-------> MongoDB 系列专题


-------> Redis 系列专题


基于上述技术栈,你已经能完成一个大数据平台通用架构了,独当一面或许就是你吧 !

吨吨吨 ( ̄y▽, ̄)╭ !


20200523223901383.png


有些没提到的,我还在学,哈哈哈 (真的让人头秃啊 X﹏X)!


13. 机器学习 Spark MlLib


在我们的业务中,遇到的能用机器学习解决的问题大概这么三类:


分类问题:包括二分类和多分类,二分类就是解决了预测的问题,就像预测一封邮件是否垃圾邮件;多分类解决的是文本的分类;

聚类问题:从用户搜索过的关键词,对用户进行大概的归类。

推荐问题:根据用户的历史浏览和点击行为进行相关推荐。

大多数行业,使用机器学习解决的,也就是这几类问题。


入门学习线路:


数学基础(这里就要求数学好一点啦 =。=)


机器学习实战(Machine Learning in Action),前面学的Python派上用场了


Spark MlLib提供了一些封装好的算法,以及特征处理、特征选择的方法


机器学习确实牛逼高大上,也是我学习的目标。


至此,可以把机器学习部分也加进你的“大数据平台”了。


-------> Python 基础系列专题


-------> Spark MLlib 系列专题


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


数据仓库是从业务角度出发的一种数据组织形式,它是大数据应用和数据中台的基础。数仓系统一般采用下图所示的分层结构。


20200424091538831.png


按照这种分层方式,我们的开发重心就在dwd层,就是明细数据层,这里主要是一些宽表,存储的还是明细数据;到了dws层,我们就会针对不同的维度,对数据进行聚合了,按道理说,dws层算是集市层,这里一般按照主题进行划分,属于维度建模的范畴;ads就是偏应用层,各种报表的输出了。


-------> 数仓分层架构 系列专题


-------> 数仓理论相关 系列专题


五、学习指南


首页,收下一本看书学习指南


-------> 大数据开发工程师的成长之道 (整理自知乎)


其次,阿里云大数据 ACA 和 ACP (两个是阿里云的大数据认证,值得一考!)


-------> 阿里云大数据开发实践 系列专题 (又名我在阿里云的大数据开发之路 )


下面,是我用阿里云的大数据开发组件设计的一套系统架构图和数仓分层模型图(具体的设计思路,有机会我会和大家再细说) 。


20200524000250196.png


20200524000519589.png


到这里,得强烈推荐阿里的这本书,《大数据之路:阿里巴巴大数据实践》 !精华大作啊!!


然后,看下前辈整理的大数据开源框架学习指南(很详细,我偷懒不想画了つ﹏⊂)


20200523232559290.png


写在最后,毕竟博主入行也就两年时间。然后对于一些小伙伴的问题,我尽量,针对不同的人给一些不同的建议。


对应届生


个人觉得应届生应该打好基础,大学本科一般都会开设数据结构,算法基础,操作系统,编译原理,计算机网络等课程。这些课程一定要好好学,基础扎实了学其他东西问题都不大,而且好多大公司面试都会问这些东西。如果你准备从事IT行业,这些东西对你会很有帮助。


至于学什么语言,我觉得对大数据行业来说,Java还是比较多。有时间有兴趣的话可以学学Scala,这个语言写Spark比较棒。


集群环境一定要搭起来。有条件的话可以搭一个小的分布式集群,没条件的可以在自己电脑上装个虚拟机然后搭一个伪分布式的集群。一来能帮助你充分认识Hadoop,而来可以在上面做点实际的东西。你所有踩得坑都是你宝贵的财富。


然后就可以试着写一些数据计算中常见的去重,排序,表关联等操作。


然后我有个小伙伴,今年某211大数据专业毕业,刚来杭州实习两周就上线了两个数仓的任务了,我奉他为( ﹁ ﹁ ) ~→最强实习生(他和我得瑟,比他早来的实习生还在打杂…),哈哈哈。


对有工作经验想转行的


主要考察三个方面,一是基础,二是学习能力,三是解决问题的能力。


基础很好考察,给几道笔试题做完基本上就知道什么水平了。


学习能力还是非常重要的,毕竟写Javaweb和写Mapreduce还是不一样的。大数据处理技术目前都有好多种,而且企业用的时候也不单单使用一种,再一个行业发展比较快,要时刻学习新的东西并用到实践中。


解决问题的能力在什么时候都比较重要,数据开发中尤为重要,我们同常会遇到很多数据问题,比如说最后产生的BI数据对不上,一般来说一份最终的数据往往来源于很多原始数据,中间又经过了N多处理。要求你对数据敏感,并能把握问题的本质,追根溯源,在尽可能短的时间里解决问题。


基础知识好加强,换工作前两周复习一下就行。学习能力和解决问题的能力就要在平时的工作中多锻炼。社招的最低要求就上面三点,如果你平日还自学了一些大数据方面的东西,都是很好的加分项。


以上是个人的一些经历和见解,希望能帮到你 (๑•̀ㅂ•́)و✧。

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