Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库、流处理和图计算等多种计算范式,是罕见的全能选手。Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的全部核心问题,具备完善的生态系统,这直接奠基了其一统云计算大数据领域的霸主地位。编程
伴随Spark技术的普及推广,对专业人才的需求日益增长。Spark专业人才在将来也是煊赫一时,垂手可得能够拿到百万的薪酬。而要想成为Spark高手,也须要一招一式,从内功练起:一般来说须要经历如下阶段:架构
第一阶段:熟练的掌握Scala语言app
Spark框架是采用Scala语言编写的,精致而优雅。要想成为Spark高手,你就必须阅读Spark的源代码,就必须掌握Scala,;框架
虽说如今的Spark能够采用多语言Java、Python等进行应用程序开发,可是最快速的和支持最好的开发API依然并将永远是Scala方式的API,因此你必须掌握Scala来编写复杂的和高性能的Spark分布式程序;运维
尤为要熟练掌握Scala的trait、apply、函数式编程、泛型、逆变与协变等;机器学习
第二阶段:精通Spark平台自己提供给开发者API分布式
掌握Spark中面向RDD的开发模式,掌握各类transformation和action函数的使用;函数式编程
掌握Spark中的宽依赖和窄依赖以及lineage机制;函数
掌握RDD的计算流程,例如Stage的划分、Spark应用程序提交给集群的基本过程和Worker节点基础的工做原理等oop
第三阶段:深刻Spark内核
此阶段主要是经过Spark框架的源码研读来深刻Spark内核部分:
经过源码掌握Spark的任务提交过程;
经过源码掌握Spark集群的任务调度;
尤为要精通DAGScheduler、TaskScheduler和Worker节点内部的工做的每一步的细节;
第四阶级:掌握基于Spark上的核心框架的使用
Spark做为云计算大数据时代的集大成者,在实时流处理、图技术、机器学习、NoSQL查询等方面具备显著的优点,咱们使用Spark的时候大部分时间都是在使用其上的框架例如Shark、Spark Streaming等:
Spark Streaming是很是出色的实时流处理框架,要掌握其DStream、transformation和checkpoint等;
Spark的离线统计分析功能,Spark 1.0.0版本在Shark的基础上推出了Spark SQL,离线统计分析的功能的效率有显著的提高,须要重点掌握;
对于Spark的机器学习和GraphX等要掌握其原理和用法;
第五阶级:作商业级别的Spark项目
经过一个完整的具备表明性的Spark项目来贯穿Spark的方方面面,包括项目的架构设计、用到的技术的剖析、开发实现、运维等,完整掌握其中的每个阶段和细节,这样就可让您之后能够从容面对绝大多数Spark项目。
第六阶级:提供Spark解决方案
完全掌握Spark框架源码的每个细节;
根据不一样的业务场景的须要提供Spark在不一样场景的下的解决方案;
根据实际须要,在Spark框架基础上进行二次开发,打造本身的Spark框架;
前面所述的成为Spark高手的六个阶段中的第一和第二个阶段能够经过自学逐步完成,随后的三个阶段最好是由高手或者专家的指引下一步步完成,最后一个阶段,基本上就是到”无招胜有招”的时期,不少东西要用心领悟才能完成。