https://www.jianshu.com/p/7a8fca3838a4
整理来源:《Spark面试2000题》
目录
Spark section-0 基础 (3)
Spark section-1 Spark运行细节 (13)
Spark section-2 Spark 与 Hadoop/MapReduce 比较 (7)
Spark section-3 RDD (4)
Spark section-4 RDD操作 (13)
Spark section-5 大数据问题 (7)
Spark section-6 机器学习算法 (4)
Spark section-7 Hive (2)
Spark section-0 基础(3)
1. spark的有几种部署模式,每种模式特点?
- 本地模式
- Spark不一定非要跑在hadoop集群,可以在本地,起多个线程的方式来指定。方便调试,本地模式分三类
- local:只启动一个executor
- local[k]: 启动k个executor
- local:启动跟cpu数目相同的 executor
- Spark不一定非要跑在hadoop集群,可以在本地,起多个线程的方式来指定。方便调试,本地模式分三类
- standalone模式
- 分布式部署集群,自带完整的服务,资源管理和任务监控是Spark自己监控,这个模式也是其他模式的基础
- Spark on yarn模式
- 分布式部署集群,资源和任务监控交给yarn管理
- 粗粒度资源分配方式,包含cluster和client运行模式
- cluster 适合生产,driver运行在集群子节点,具有容错功能
- client 适合调试,dirver运行在客户端
- Spark On Mesos模式
2. Spark技术栈有哪些组件,每个组件都有什么功能,适合什么应用场景?
- Spark core
- 是其它组件的基础,spark的内核
- 主要包含:有向循环图、RDD、Lingage、Cache、broadcast等
- SparkStreaming
- 是一个对实时数据流进行高通量、容错处理的流式处理系统
- 将流式计算分解成一系列短小的批处理作业
- Spark sql:
- 能够统一处理关系表和RDD,使得开发人员可以轻松地使用SQL命令进行外部查询
- MLBase
- 是Spark生态圈的一部分专注于机器学习,让机器学习的门槛更低
- MLBase分为四部分:MLlib、MLI、ML Optimizer和MLRuntime。
- GraphX
- 是Spark中用于图和图并行计算
3. spark有哪些组件
- master:管理集群和节点,不参与计算。
- worker:计算节点,进程本身不参与计算,和master汇报。
- Driver:运行程序的main方法,创建spark context对象。
- spark context:控制整个application的生命周期,包括dagsheduler和task scheduler等组件。
- client:用户提交程序的入口。
Spark section-1 Spark运行细节(13)
1. spark工作机制
- 用户在client端提交作业后,会由Driver运行main方法并创建spark context上下文。
- 执行add算子,形成dag图输入dagscheduler
- 按照add之间的依赖关系划分stage输入task scheduler
- task scheduler会将stage划分为taskset分发到各个节点的executor中执行
2. Spark应用程序的执行过程
- 构建Spark Application的运行环境(启动SparkContext)
- SparkContext向资源管理器(可以是Standalone、Mesos或YARN)注册并申请运行Executor资源;
- 资源管理器分配Executor资源,Executor运行情况将随着心跳发送到资源管理器上;
- SparkContext构建成DAG图,将DAG图分解成Stage,并把Taskset发送给Task Scheduler
- Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行,SparkContext将应用程序代码发放给Executor。
- Task在Executor上运行,运行完毕释放所有资源。
3. driver的功能是什么?
- 一个Spark作业运行时包括一个Driver进程,也是作业的主进程,具有main函数,并且有SparkContext的实例,是程序的人口点;
- 功能:
- 向集群申请资源
- 负责了作业的调度和解析
- 生成Stage并调度Task到Executor上(包括DAGScheduler,TaskScheduler)
4. Spark中Work的主要工作是什么?