如何从菜鸟成长成spark大数据高手(转载+自我笔记)
以后会出各种关于hadoop,spark,机器学习专题,新手笔记,大家多多提意见。

Spark采用了一个统一的技术堆栈解决了云计算大数据的如流式处理,图技术,机器学习,nosql查询等方面的核心问题,RDD。
具有完整的生态系统,这奠定了一统云计算大数据领域的霸主地位。
要成为高手,需要经历以下几个阶段。

第一阶段:熟练掌握Scala语言
1,spark框架是采用scala语言写的,精致优雅。想要成为spark高手,你就必须阅读spark源码,就必须掌握scala。
2,虽然现在的spark可以使用多种语言开发,java,python,但是最快速和支持最好的API依然并将永远是Scala的API,所以必须掌握scala来编写复杂的和高性能的spark分布式程序。
3尤其是熟练掌握Scala的trait,apply,函数式编程,泛型,逆变,与协变等。

第二阶段:精通spark平台本身提供给开发折的API
1,掌握spark中面向RDD的开发模式,掌握各种transformation和action函数的使用。
2,掌握Spark中的款依赖和窄依赖,lineage机制
3,掌握RDD的计算流程,如Stage的划分,spark应用程序提交给集群的基础过程和Work节点基础的工作原理。

第三阶段:深入Spark内核
此阶段主要是通过Spark框架的源码研读来深入Spark内核部分:
1,通过源码掌握Spark的任务提交,
2,通过源码掌握Spark的集群的任务调度,
3,尤其要精通DAGScheduler,TaskScheduler和Worker节点内部的工作的每一步细节。

第四阶段:掌握Spark上的核心框架的使用
Spark作为云计算大数据时代的集大成者,在实时流式处理,图技术,机器学习,nosql查询等方面具有明显的优势,我们使用Spark的时候大部分时间都是在使用其框架:
sparksql,spark streaming等
1,spark streaming是出色的实时流失处理框架,要掌握,DStream,transformation和checkpoint等。
2,spark sql是离线统计分析工具,shark已经没落。
3,对于spark中的机器学习和Graphx等要掌握其原理和用法。

第五阶段:做商业级的spark项目
通过一个完整的具有代表性的spark项目来贯穿spark的方方面面,包括项目的框架设计,用到的技术的剖析,开始实现,运维等,完善掌握其中的每一个阶段和细节,以后你就可以从容的面对绝大多数spark项目。

第六阶段:提供spark解决方案
1,彻底掌握spark框架源码的每一个细节,
2,根据步同的业务场景的需要提供spark在不同场景的解决方案,
3,根据实际需要,在spark框架基础上经行2次开发,打造自己的spark框架。

前两个阶段可以自学,随后三个框架需要高手或者专家带,才能完成,最后一个阶段,基本也就到了无招胜有招了。