设为首页 收藏本站
查看: 907|回复: 0

[经验分享] 系统的学习大数据分布式计算spark技术

[复制链接]

尚未签到

发表于 2019-1-30 14:24:52 | 显示全部楼层 |阅读模式
  我们在学习一门技术的时候一定要以系统的思维去学习,这样的话,不仅对你的提高有很大的帮助,也可以让你高效的使用这个技术。
  

  对于学习spark,当然也是要以系统的思维去全面的学习。这篇博客是我系统的学习spark的点点滴滴,写这篇博客的目的有两:一是将自己多年学习到的知识的总结;二是分享给大家,希望对大家有帮助
  

  系统的学习spark技术的形式有两种:博客和视频,对于能用博客说明白的问题,会以免费的博客形式给出,但是对于一些原理性的东西用博客很难说的很明白,所以会以视频给出
  

  这个系统学习spark的名称是:spark2.x 由浅入深深到底系列知识。所谓的"浅"是指一定的场景或者问题,然后"入深"就是这个解决这个场景以及问题的原理是什么,然后再“深”就是指这些场景以及问题的原理在我们的代码层面上是怎么实现的,就是会涉及到源码的阅读,最后“到底”就是我们的实践了,然后用实践产生价值
  

  以下是系统学习spark的步骤:
  

  一、spark2.x 由浅入深深到底系列一:正确理解spark
  只有正确理解spark了,我们才能确定学习spark的方向和思路,这个是指路灯。
  这个我们以视频的方式给出,视频的链接URL是:http://edu.运维网.com/course/10932.html
  在这个视频中,我们会弄明白下面的几个问题:
1: 彻底弄懂什么是RDD及其特点
2: 彻底弄懂什么是spark的分布式内存计算
3: 彻底弄懂spark是怎样解决各个领域问题,以及在解决各个领域问题的时候的特点
同时,我们会彻底搞明白下面的两个问题:
1: spark是基于内存的,MapReduce是基于磁盘的,所以spark比MapReduce快,真的是这样的吗?
2: spark的分布式内存是怎么样合理的使用的,或者说用在哪些场景下是合理的


二、spark2.x 由浅入深深到底系列二:spark core RDD Api
对spark core中的RDD中的每一个scala api的用法、用的过程中需要注意的点以及每一个api的原理都做了系统的深入的讲解
这个我们以视频的方式给出,视频的链接URL是:http://edu.运维网.com/course/11058.html
这个视频中的内容包括如下:

第一章: 课程内容以及课程需要的环境的描述


第二章: 了解scala

了解scala的基本概念,包括:
1、scala之面向对象编程
2、scala之函数式编程
3、scala的两个特征:闭包和数据结构Option


第三章: RDD概念
根据RDD的特点,进而提出RDD的定义以及RDD的优势


第四章: RDD的创建
详细讲解创建RDD的api,并且详细分析了parallelize和makeRDD两个api的原理和差异


第五章: RDD的依赖
RDD的依赖的设计,并详细讲解了为什么RDD这么设计依赖



第六章: RDD的分区
1、用原理图的方式展示了RDD分区器HashPartitioner的工作原理

2、讲解利用分区器是怎么样进行性能优化的
3、结合原理图和源代码讲解RangePartitioner的工作原理以及使用场景
4、结合实例自定义RDD的分区器Partitioner
5、RDD分区数控制api - coalesce 和 repartition的使用场景以及两者的区别
6、结合原理图和源代码讲解coalesce的原理


第七章: 单类型RDD的api详解
1、单类型RDD的transformation api的使用及其需要注意的点,包括map, mapPartition, flatMap等api

2、MapPartitionsRDD的原理代码详解
3、RDD的采样api(sample等)介绍
4、RDD分层采样api(sampleByKey等)的介绍
5、RDD的pipe api的使用方式以及使用过程中需要注意的点
6、RDD的pipe的原理深入讲解
7、单类型RDD的基本action api的讲解,包括foreach、first、collect等

8、单类型RDD基本action api讲解,包括reduce、fold以及aggregate等。同时分析了reduce和treeReduce以及aggregate和treeAggregate的原理和区别


第八章 key-value类型RDD的api详解

1、combineBykey的七大参数的详解
2、ShuffleRDD的原理详解

3、基于combineByKey的api详解,包括aggregateByKey、reduceByKey、foldByKey以及groupByKey等
4、combineBykey实战以及使用过程中需要注意的点
5、reduceByKey和groupByKey的对比,同时包含了reduce和fold的对比
6、cogroup api的感官认识,包括基于cogroup实现的join、leftOuterJoin、rightOuterJoin、fullOuterJoin以及subtractByKey等api
7、通过原理图和源代码详解cogroup原理
8、join等api的原理实现
9、subtractByKey的原理
10、sortedByKey原理,利用RangePartitioner实现优化
11、count、countByKey等计数api,包括近似估算等api


第九章: 二元RDD操作
1、union的使用及其原理
2、intersection的使用及其原理
3、cartesian笛卡尔积的使用及其原理
4、zip的使用及其原理


第十章: persist 和 checkpoint机制
1、RDD的缓存机制,即persist
2、checkpoint的作用和实现流程
3、checkpoint实现原理
4、localCheckpoint和checkpoint的优缺点


第十一章: Spark读写外部数据源

1、spark支持的读写存储系统

2、HadoopRDD的原理和实现
3、spark支持的通用的文件格式,重点会讲述了SequenceFile的数据结构以及需要注意的点,包括text file、CSV file、Sequence file 、 Object file以及MapFile等
4、spark支持的hbase file的读写代码
5、行式存储文件格式(avro)和列式存储文件格式(parquet)读写的详细讲解
6、spark对二进制数据的读写的api详解


第十二章: broadcast和accumulator两个api的详解


第十三章: RDD项目实战
以本人真实参加的项目来串联我们这个课程所将到的api


三、spark2.x 由浅入深深到底系列三:spark core正确提交spark应用

我们一般用spark-submit来提交一个spark应用,所以我们需要理解透spark-submit中的每一个参数的用法及其原理,以达到正确提交各种业务场景下的spark应用。在理解透了spark-submit中的每一个参数的用法及其原理后,我们需要理解透spark-submit的原理,这个也是打开深入学习spark的大门
这个我们以视频的方式给出,视频的链接URL是:http://edu.运维网.com/course/11132.html
这个视频的内容包括:
第一章:课程内容简介


第二章:java基础知识
2.1 java命令启动JVM
2.2 java ProcessBuilder启动JVM


第三章:详解spark-submit的每一个参数
3.1 spark-submit感官认识
3.2 master和deploy-mode参数详解
3.3 --conf参数详解
3.4 driver相关参数的详解
3.5 executor相关参数的详解
3.6 --jars参数详解
3.7 --package相关参数详解
3.8 --files参数详解
3.9 --queue相关参数的详解
3.10 python spark应用的正确提交
3.11 利用SparkLauncher在代码中提交spark应用


第四章 spark-submit原理
4.1 spark脚本系统
4.2 spark-class脚本原理以及实现
4.3 spark-daemon脚本原理以及实现
4.4 SparkSubmit原理以及源码分析
  

  四、spark2.x 由浅入深深到底系列四:spark core - scheduler on driver
  由浅入深的讲解spark应用是怎么样拆分成task的,然后怎么在集群中调度的,以及深入讲解了task调度的过程中的本地性规则、推测机制以及黑名单机制等。

  这章比较偏原理,但是我会以一种通俗易懂的话语来讲透这些原理,你会发现,你觉得很复杂的东东其实都是那么的简单
  这个我们以视频的方式给出:大概十一之前会发布视频
  大致的内容包括(可能会变,以发布出来的视频为准):
  第一章:课程内容以及环境
  

  第二章:一个spark应用中的调度
  2.1 DAG的划分
  2.2 stage的调度流程原理
  2.3 task的延迟调度及性能调优
  2.4 task的推测机制及其使用场景
  2.5 Blacklist机制及其使用场景
  2.6 资源调度及其管理
  

  第三章:多个spark应用的调度
  3.1 资源动态分配的前提
  3.2 资源动态分配的机制
  

  五、spark2.x 由浅入深深到底系列五:spark core - shuffle实现原理以及调优
  在这个课程中会以通俗易懂的话语彻底说清楚spark的shuffle的实现原理以及调优过程
  这个课程的内容大致会涉及到:内存管理原理、存储管理原理、mapoutTracker实现原理以及shuffle管理原理
  这个我们以视频的方式给出:发布时间待定
  

  六、spark2.x 由浅入深深到底系列六:spark core RDD java api
  这个是对系列二的一个补充,会详细介绍RDD java api的实现原理,以及api的用法
  这个以博客的形式给出,博客地址为:http://7639240.blog.运维网.com/7629240/d-1
  会时时更新,以达到将自己所有知道的都写进去
  

  
七、spark2.x 由浅入深深到底系列七:spark core RDD python api
这个是对系列二的一个补充,会详细介绍RDD python api的实现原理,以及api的用法
这个以博客的形式给出,博客地址为:http://7639240.blog.运维网.com/7629240/d-2
这个目前还不是很完善,有空会时时更新



八、 spark2.x 由浅入深深到底系列八:spark core必备基础知识
本课程主要会深入理解spark core的三个基础组件以及我们深入理解spark需要的部分的基础java知识
目标:
1: spark的安全管理
2: spark的序列化机制
3: spark的RPC机制,包括部分的nio的知识点
这个以博客的形式给出,博客地址为:待定


九、 spark2.x 由浅入深深到底系列九:spark core集群资源管理机制

本课程会详细的理解spark的三种资源管理机制:
1: spark自带的standalone模式,以及深入讲解standalone的实现原理
2: hadoopyarn模式,这节课使的我们彻底弄明白spark是怎么基于yarn来跑任务的,以及我们怎么样去自己实现一个往yarn上提交应用的客户端
3: mesos模式,这节课使的我们彻底弄明白spark是怎么基于mesos来跑任务的,以及我们怎么样去自己实现一个往mesos上提交应用的客户端


这个以博客的形式给出,博客地址为:待定



  






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669710-1-1.html 上篇帖子: 【邀请函】第11期Spark公益大讲堂:Spark&Docker 下篇帖子: 大数据学习,大数据发展趋势和Spark介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表