博客
关于我
Spark学习之路(建议收藏)
阅读量:540 次
发布时间:2019-03-09

本文共 2713 字,大约阅读时间需要 9 分钟。

大纲:

一、熟练的掌握Scala和Java语言

二、精通Spark平台本身提供给开发者API

三、深入Spark内核

四、掌握基本Spark Streaming

五、掌握基本Spark SQL

六、掌握基本Spark机器学习及图计算

七、掌握Spark相关生态边缘

八、做商业级别的Spark项目

九、提供Spark解决方案

Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库、流处理和图计算等多种计算范式,是罕见的全能选手。Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位。

伴随Spark技术的普及推广,对专业人才的需求日益增加。Spark专业人才在未来也是炙手可热,轻而易举可以拿到百万的薪酬。而要想成为Spark高手,也需要一招一式,从内功练起:通常来讲需要经历以下阶段:

一、熟练的掌握Scala和Java语言

  1. Spark框架是采用Scala语言编写的,精致而优雅。要想成为Spark高手,你就必须阅读Spark的源代码,就必须掌握Scala,;

  2. 虽然说现在的Spark可以采用多语言Java、Python等进行应用程序开发,但是最快速的和支持最好的开发API依然并将永远是Scala方式的API,所以你必须掌握Scala来编写复杂的和高性能的Spark分布式程序;

  3. 尤其要熟练掌握Scala的trait、apply、函数式编程、泛型、逆变与协变等;

  4. 掌握JAVA语言多线程,netty,rpc,ClassLoader,运行环境等(源码需要)。

二、精通Spark平台本身提供给开发者API

  1. 掌握Spark中面向RDD的开发模式部署模式:本地(调试),Standalone,yarn等 ,掌握各种transformation和action函数的使用;

  2. 掌握Spark中的宽依赖和窄依赖以及lineage机制;

  3. 掌握RDD的计算流程,例如Stage的划分、Spark应用程序提交给集群的基本过程和Worker节点基础的工作原理等

  4. 熟练掌握spark on yarn的机制原理及调优

三、深入Spark内核

此阶段主要是通过Spark框架的源码研读来深入Spark内核部分:

  1. 通过源码掌握Spark的任务提交过程;

  2. 通过源码掌握Spark集群的任务调度;

  3. 尤其要精通DAGScheduler、TaskScheduler,Driver和Executor节点内部的工作的每一步的细节;

  4. Driver和Executor的运行环境及RPC过程

  5. 缓存RDD,Checkpoint,Shuffle等缓存或者暂存垃圾清除机制

  6. 熟练掌握BlockManager,Broadcast,Accumulator,缓存等机制原理

  7. 熟练掌握Shuffle原理源码及调优

四、掌握基本Spark Stream

Spark作为云计算大数据时代的集大成者,其中其组件spark Streaming在企业准实时处理也是基本是必备,所以作为大数据从业者熟练掌握也是必须且必要的:

  1. Spark Streaming是非常出色的实时流处理框架,要掌握其DStream、transformation和checkpoint等;

  2. 熟练掌握kafka 与spark Streaming结合的两种方式及调优方式

  3. 熟练掌握Structured Streaming原理及作用并且要掌握其余kafka结合

  4. 熟练掌握SparkStreaming的源码尤其是和kafka结合的两种方式的源码原理。

  5. 熟练掌握spark Streaming的web ui及各个指标,如:批次执行事件处理时间,调度延迟,待处理队列并且会根据这些指标调优。

  6. 会自定义监控系统

五、掌握基本Spark SQL

企业环境中也还是以数据仓库居多,鉴于大家对实时性要求比较高,那么spark sql就是我们作为仓库分析引擎的最爱(浪尖负责的两个集群都是计算分析一spark sql为主):

  1. spark sql要理解Dataset的概念及与RDD的区别,各种算子

  2. 要理解基于hive生成的永久表和没有hive的临时表的区别

  3. spark sql+hive metastore基本是标配,无论是sql的支持,还是永久表特性

  4. 要掌握存储格式及性能对比

  5. Spark sql也要熟悉它的优化器catalyst的工作原理。

  6. Spark Sql的dataset的链式计算原理,逻辑计划翻译成物理计划的源码(非必须,面试及企业中牵涉到sql源码调优的比较少)

六、掌握基本Spark机器学习及图计算

企业环境使用spark作为机器学习及深度学习分析引擎的情况也是日渐增多,结合方式就很多了:

java系:

  1. spark ml/mllib spark自带的机器学习库,目前也逐步有开源的深度学习及nlp等框架

    ( spaCy, CoreNLP, OpenNLP, Mallet, GATE, Weka, UIMA, nltk, gensim, Negex, word2vec, GloVe)

  2. 与DeepLearning4j目前用的也比较多的一种形式

python系:

  1.  pyspark

  2. spark与TensorFlow结合

 七、掌握Spark相关生态边缘

企业中使用spark肯定也会涉及到spark的边缘生态,这里我们举几个常用的软件框架:

  1. hadoop系列:kafka,hdfs,yarn

  2. 输入源及结果输出,主要是:mysql/redis/hbase/mongod

  3. 内存加速的框架redis,Alluxio

  4. es、solr

八、做商业级别的Spark项目

通过一个完整的具有代表性的Spark项目来贯穿Spark的方方面面,包括项目的架构设计、用到的技术的剖析、开发实现、运维等,完整掌握其中的每一个阶段和细节,这样就可以让您以后可以从容面对绝大多数Spark项目。

九、提供Spark解决方案

  1. 彻底掌握Spark框架源码的每一个细节;

  2. 根据不同的业务场景的需要提供Spark在不同场景的下的解决方案;

  3. 根据实际需要,在Spark框架基础上进行二次开发,打造自己的Spark框架;

这就是浪尖总结的我们学好spark的主要步骤;想学好,着重留意深色字体的。坚持总是空难,但是坚持下来就会有质的飞跃。

--end--

推荐阅读:

扫描下方二维码

添加好友,备注【交流群

拉你到学习路线和资源丰富的交流群

转载地址:http://znriz.baihongyu.com/

你可能感兴趣的文章
m_Orchestrate learning system---二十二、html代码如何变的容易
查看>>
M×N 形状 numpy.ndarray 的滑动窗口
查看>>
m个苹果放入n个盘子问题
查看>>
n = 3 , while n , continue
查看>>
n 叉树后序遍历转换为链表问题的深入探讨
查看>>
N!
查看>>
N-Gram的基本原理
查看>>
n1 c语言程序,全国青少年软件编程等级考试C语言经典程序题10道七
查看>>
Nacos Client常用配置
查看>>
nacos config
查看>>
Nacos Config--服务配置
查看>>
Nacos Derby 远程命令执行漏洞(QVD-2024-26473)
查看>>
Nacos 与 Eureka、Zookeeper 和 Consul 等其他注册中心的区别
查看>>
Nacos 单机集群搭建及常用生产环境配置 | Spring Cloud 3
查看>>
Nacos 启动报错[db-load-error]load jdbc.properties error
查看>>
Nacos 报Statement cancelled due to timeout or client request
查看>>
Nacos 注册服务源码分析
查看>>
Nacos 融合 Spring Cloud,成为注册配置中心
查看>>
Nacos-注册中心
查看>>
Nacos2.X 源码分析:为订阅方推送、服务健康检查、集群数据同步、grpc客户端服务端初始化
查看>>