Spark 面试题(三)

1. 简述Spark on YARN运行过程 ?

"Spark on YARN"指的是在YARN(Yet Another Resource Negotiator)上运行Apache Spark应用程序的过程。YARN是Hadoop的一个组件,负责集群资源管理和作业调度。以下是Spark on YARN运行过程的简要概述:

  1. 环境准备:确保YARN集群已经部署并运行,Spark也已经安装并配置为与YARN集群协同工作。

  2. 提交作业:用户通过spark-submit脚本提交Spark作业到YARN集群。这个脚本会将作业的配置和依赖信息打包并发送给YARN。

  3. 资源申请spark-submit向YARN资源管理器(ResourceManager)申请启动一个Spark应用程序。

  4. 启动ApplicationMaster:YARN ResourceManager响应spark-submit的请求,启动一个ApplicationMaster(AM)实例。AM是Spark作业在YARN集群中的协调者。

  5. 资源协商:ApplicationMaster向ResourceManager请求所需的资源(CPU、内存等),以便启动Executor。

  6. 调度任务:ApplicationMaster根据Spark作业的需求,将作业划分为多个任务,并根据集群资源情况调度这些任务。

  7. 启动Executor:YARN ResourceManager将任务分配给可用的NodeManager,每个NodeManager启动一个或多个Executor进程来执行任务。

  8. 任务执行:Executor接收到任务后,开始执行。Executor负责执行具体的计算任务,并与ApplicationMaster保持通信,报告任务状态。

  9. 数据本地性:Executor在执行任务时,会尽量利用数据本地性原则,即优先使用存储在本地节点上的数据,以减少数据传输的开销。

  10. 结果收集:任务执行完成后,结果被收集并返回给ApplicationMaster。

  11. 容错处理:如果Executor失败,ApplicationMaster会根据Spark的容错机制重新调度任务。

  12. 作业完成:当所有任务都成功执行完成后,ApplicationMaster向ResourceManager报告作业完成,并释放所有资源。

  13. 资源回收:YARN ResourceManager回收为该Spark作业分配的所有资源,包括CPU、内存和存储。

  14. 反馈结果:ApplicationMaster将最终的作业执行结果反馈给用户。

通过这种方式,Spark利用YARN作为其资源管理和任务调度的后端,可以有效地在Hadoop集群上运行和扩展Spark应用程序。这种集成使得Spark能够与Hadoop生态系统中的其他组件无缝协作。

2. 简述YARN-Client 与 YARN-Cluster 区别 ?

在Apache Spark中,YARN-Client和YARN-Cluster是两种不同的部署模式,它们在与YARN(Yet Another Resource Negotiator)资源管理器的交互方式上有所不同。以下是这两种模式的主要区别:

  1. 资源管理器交互

    • YARN-Client:在这种模式下,Spark的Driver程序运行在客户端机器上,而不是集群中。Driver通过与YARN的ResourceManager交互来申请资源,并监控作业的执行状态。
    • YARN-Cluster:在这种模式下,Driver程序运行在集群中的一个节点上,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

依邻依伴

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

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

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

打赏作者

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

抵扣说明:

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

余额充值