前言:面试官说有个小小的区别你知道么?
面试问到你们这个spark是什么模式的?
答:Spark on yarn
- spark on yarn cluster 模式
ResourceManger 分配资源 ApplicationMaster (AM)通信 NodeManager NodeManger 开辟 Container,Container进行 executor执行job。同时资源情况以及job状态 的收集通过AM传给 RM
Container是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源),用来启动运行task。
2.spark on yarn client 模式
Client 客户端 向RM请求提交 job, ResourceManger 分配资源 ApplicationMaster (AM)通信 NodeManager NodeManger 开辟 Container,Container进行 executor执行job,资源情况以及job状态 的收集通过AM传给Client 。Driver就是运行在这个Client
yarn-cluster vs yarn-client
1.yarn-client用于测试,因为driver运行在本地客户端,负责调度application,会与yarn集群产生超大量的网络通信,从而导致网卡流量激增,增加网络负荷,好处在于,直接执行时,本地可以看到所有的log,方便调试
2.yarn-cluser,用于生产环境,因为dirver运行在nodemanager,没有网卡流量激增问题,缺点在于,调试不方便,本地用spark-submit提交后,看不到log,只能通过yarn appication logs applicaiton_id这种命令来查看,很麻烦。
寄语专区: