美文网首页spark
[第二章] spark-yarn原理分析

[第二章] spark-yarn原理分析

作者: hoose | 来源:发表于2016-02-12 00:05 被阅读783次

    在上一篇文章里我们主要是分析了spark standlane内核的执行原理,本节主要是对spark在yarn上的执行原理进行分析。
    spark在yarn上执行分两种:
    1:spark yarn-cluster
    2:spark yarn-client

    我们先说下yarn-cluster,
    1:我们把写好的程序打包在yarn集群的某一个客户端操作spark-submit提交(注意脚本里的参数与standalone不同)
    这时,发送请求到ResourceManager(RM)请求启动ApplicationMaster(AM)

    2:RM接收请求,分配Container,在某一个NodeManager(NM)上启动ApplicationMaster

    3:NM接收到RM的通知,启动ApplicationMaster.这个时候其实这个NM就是我们说的Driver,ApplicationMaster反过来会找RM,请求Container,来启动Executor

    4:RM会分配一批Container给ApplicationMaster用于启动executor,ApplicationMaster会连接其他NM,来启动executor,这里的NM相当于Worker
    executor启动后,会向ApplicationMster反向注册。余下的原理与standalone一样

    spark yarn-client

    1:我们把写好的程序打包在yarn集群的某一个客户端操作spark-submit提交(注意脚本里的参数与standalone不同)
    这时,发送请求到ResourceManager(RM)请求启动ApplicationMaster(AM)

    2:RM接收请求,分配Container,在某一个NodeManager(NM)上启动ApplicationMaster,但是这里的AM是一个叫ExecutorLanuch进程。

    3:NM接收到RM的通知,启动ApplicationMaster.这个时候其实这个NM就是我们说的Driver,ApplicationMaster反过来会找RM,请求Container,来启动Executor

    4:RM会分配一批Container给ApplicationMaster用于启动executor,ApplicationMaster会连接其他NM,来启动executor,这里的NM相当于Worker
    executor启动后,这里与yarn-cluster不一样,executor 要向本地(yarn集群的某一个客户端操作spark-submit提交)的机器反向注册,因为本地其实会启动一个Driver进程

    总结:
    yarn-client用于测试,因为,driver运行在本客户端,负责调度application,会与集群产生超大量的网络通信,从而导致网上流量增大。好处是本地执行,可以看到所有的log,方便调试
    yarn-cluster用于生产中,driver运行在NM中,没有网网卡流量激增问题缺点:调试不方便,本地用spark-sumbit提交后,看不到log,只能通过yarn -application -id命令来查看,很不方便。

    相关文章

      网友评论

        本文标题:[第二章] spark-yarn原理分析

        本文链接:https://www.haomeiwen.com/subject/mtdukttx.html