spark

、架构设计

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语言使用者的交互方式。

上一篇:Spark整合Hive


下一篇:tensorflow训练模型遇到的问题The name 'DecodeJpeg/contents:0' refers to a Tensor which does not exis