分享

如何成为云计算大数据Spark高手

本帖最后由 howtodown 于 2014-9-1 23:55 编辑
问题导读
1.你认为该如何学习spark?
2.你认为学习spark都需要掌握哪些内容?








拿破仑说:不想当将军的士兵不是好士兵。想成为spark高手吗,那就往下读吧?

Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位;

要想成为Spark高手,需要经历一下阶段:


第一阶段:熟练的掌握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应用程序提交给集群的基本过程和Worker节点基础的工作原理等

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

第四阶级:掌握基于Spark上的核心框架的使用
Spark作为云计算大数据时代的集大成者,在实时流处理、图技术、机器学习、NoSQL查询等方面具有显著的优势,我们使用Spark的时候大部分时间都是在使用其上的框架例如Shark、Spark Streaming等:

1,Spark Streaming是非常出色的实时流处理框架,要掌握其DStream、transformation和checkpoint等;
2,Spark的离线统计分析功能,Spark 1.0.0版本在Shark的基础上推出了Spark SQL,离线统计分析的功能的效率有显著的提升,需要重点掌握;
3,对于Spark的机器学习和GraphX等要掌握其原理和用法;

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

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

前面所述的成为Spark高手的六个阶段中的第一和第二个阶段可以通过自学逐步完成,随后的三个阶段最好是由高手或者专家的指引下一步步完成,最后一个阶段,基本上就是到”无招胜有招”的时期,很多东西要用心领悟才能完成。





已有(8)人评论

跳转到指定楼层
Riordon 发表于 2014-9-2 08:29:25
技术百花齐放,该何去何从...
回复

使用道具 举报

271592448 发表于 2014-9-2 08:57:23
源码通读必不可少。可以通过spark-core里面的例子,学习api。
回复

使用道具 举报

xin07020220 发表于 2014-9-8 15:39:53
咱还是先沉下心来把scala学好先吧!!!
回复

使用道具 举报

xpy888 发表于 2014-10-25 11:14:50
@xioaxu790 ,  你好,有个关于spark编程的问题想请教你。不知道可否?这样回复有点冒昧了。请见谅。

1412043042      125.64.229.40   CN5115        auto.sohu.com   /wmh-auto-tab?pvid=tc_auto&a=tab&b=auto        000242D62CB409A55251BDCE0D3381D3
1412037977      60.165.17.191   CN6201        auto.sohu.com   /wmh-auto-tab?pvid=tc_auto&a=tab&b=auto        00026D7C9E94DA60EE020DC57AB4EB73
1412036910      1.83.119.80     CN6101        jiangjia.auto.sohu.com  /110000/157/4001/0/all/all/0/0/fd/0.html        00029B77BFAD79F18EBF90DBACBDDE21
1412040269      1.85.212.7      CN6101        db.auto.sohu.com        /model_1004/pic_t3295555.shtml        00029B77BFAD79F18EBF90DBACBDDE21
1412040254      1.85.212.7      CN6101        db.auto.sohu.com        /model_1004/pic_t3106880.shtml         00029B77BFAD79F18EBF90DBACBDDE21
1412040271      1.85.212.7      CN6101        db.auto.sohu.com        /model_1004/pic_t3295553.shtml        00029B77BFAD79F18EBF90DBACBDDE21
1412040292      1.85.212.7      CN6101        db.auto.sohu.com        /model_1004/pic_m3235689.shtml        00029B77BFAD79F18EBF90DBACBDDE21


第一列: 时间
第二列: ip
第三列: 地区码,相当于某个地区的代码
第四列: 域名
第五列: url
第六列:suv  --> (说明:来计算uv的),需要去重的

现在想通过spark 来计算 当前日志中包含 db.auto.sohu.com 的 pv 和 uv

val rdd = sc.textFile("/user/logs/pvlog/test1")

回复

使用道具 举报

break-spark 发表于 2014-10-31 11:17:13
写的进阶不错,赞一个
回复

使用道具 举报

merlin_d 发表于 2014-10-31 14:43:30
开启学习模式……
回复

使用道具 举报

strivecheng 发表于 2014-12-25 16:28:22
技术种类真是太多太多啊!
回复

使用道具 举报

tang 发表于 2015-11-27 16:56:54
很强大,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条