spark stream 调度存储过程
spark大数据用什么语言?
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框架。
为什么程序员工作后就喜欢用stream流?
我就非常喜欢写 stream。
for 循环里复杂的超过 5 行的逻辑,需要单独写函数,所以也不会允许在 map 里写超级复杂的 for 的逻辑。超过这些行数的代码段,即便写在 for 循环里,使得一个函数里一大堆 for 循环,同样不好读。所以我更推荐函数多,而每个函数行数少。
至于为什么推荐 stream,我觉得 stream 非常适合抽象思维去解决业务,而且我们就算做 CRM,ERP 等业务系统,我,至少我自己,对运行中的算法复杂度和空间复杂度都是很看重的(并且我们不允许 MySQL 的 join)。所以经常在业务逻辑中用数组,哈希表,树,对我来说,后端的数据都是各种 map filter distinct 等抽象而来的,而且写起来很有数学 抽象 逻辑思维。这一点上,我非常喜欢 stream。并且 stream 的一些特性也非常好用,比如保持原有的顺序。
况且我非常喜欢函数式的思维,无论是在业务开发,还是 AI,还是策略开发,还是运维各个领域,甚至到架构,函数式的思维也非常有用,甚至是非常有意义的。比如 serverless,有没有想过,在底层逻辑上,这两着之间有共同之处呢?Linux 的 terminal 的 pipeline,其实也和 stream 很像。
这是我喜欢用 stream 的逻辑。