Spark面试题整理

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
  • 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的主要工作是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello_world!

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值