、架构设计
1. 架构设计图
![](F:\大数据笔记\图片\spark架构设计.jpg)
2. 相关术语名称解释
- RDD(Resilient Distributed DataSet)
- partiton(分区)
- 算子
- transformation类算子
- Action算子
- 窄依赖
- 宽依赖
- Application
- Driver
- Cluster Manager
- WorkerNode
- Exector
- Task
- Job(作业)
- Stage(阶段)
二、spark运行模式与用户交互方式
1. 运行模式
- 即作业以什么样的模式去执行,主要是单击、分布式两种方式的细节选择
| **序号** | **模式名称** | **特点** | **应用场景** |
| -------- | ------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 1 | 本地运行模式(local) | 单台机器多线程来模拟spark分布式计算 | 机器资源不够 测试验证程序逻辑的正确性 |
| 2 | 伪分布式模式 | 单台机器多进程来模拟spark分布式计算 | 机器资源不够 测试验证程序逻辑的正确性 |
| 3 | standalone(client) | 独立布署spark计算集群 自带clustermanager driver运行在spark submit client端 | 机器资源充分 纯用spark计算框架 任务提交后在spark submit client端实时查看反馈信息 数据共享性弱 测试使用还可以,生产环境极少使用该种模式 |
| 4 | standalone(cluster) | 独立布署spark计算集群 自带clustermanager driver运行在spark worker node端 | 机器资源充分 纯用spark计算框架 任务提交后将退出spark submit client端 数据共享性弱 测试和生产环境均可以*使用,但更多用于生产环境 |
| 5 | spark on yarn (yarn-client) | 以yarn集群为基础 只添加spark计算框架相关包 driver运行在yarn client上 | 机器资源充分 多种计算框架混用 数据共享性强 任务提交后在yarn client端实时查看反馈信息 |
| 6 | spark on yarn (yarn-cluster) | 以yarn集群为基础 只添加spark计算框架相关包 driver运行在集群的am contianer中 | 机器资源充分 多种计算框架混用 数据共享性强 任务提交后将退出yarn client端 |
| 7 | spark on mesos/ec2 | 与spark on yarn类似 | 与spark on yarn类似 在国内应用较少 |
2. 用户交互模式
- spark-shell:spark命令方式来操作spark作业
- 多用于简单的学习、测试、简易作业操作。
- spark-submit:通过程序脚本,提交相关的代码、依赖等来操作spark作业。
- 最多见的提交任务的交互方式,简单易用、参数齐全。
- spark-sql:通过sql的方式操作spark作业。
- sql相关的学习、测试、生产环境研发均可以使用该直接操作交互方式。
- spark-class:最低层的调用方式,其它调用方式多是最终转化到该方式中去提交。
- 直接使用较少
- sparkR,sparkPython:通过其它非java、非scala语言直接操作spark作业的方式。
- R、python语言使用者的交互方式。