Spark的基本架构
Spark应用程序
组成
- 一个Driver
- 运行main()函数
- 维护spark应用程序的相关信息
- 回应用户的程序或输入
- 分析任务并分发给若干executor进行处理
- 一组Executor
- 执行driver分发给它的代码
- 将该执行器的计算状态报告给运行driver的节点
重要概念
- SparkSession是代码的入口点
- 分区是位于集群中的一台物理机上的多行数据的集合
转换操作
1 | val divisBy2 = myRange.where("number % 2 =0") |
这些转换并没有实际输出,在调用动作操作之前,Spark不会真的执行转换操作,有两类转换操作
- 窄依赖
- 宽依赖
Lazy Evaluation: 等到绝对需要时才执行计算
动作操作:触发计算的Action