①spark on yarn-cluster模式
②spark on yarn-client提交模式
一般,spark on yarn-client在测试的时候使用,dirver运行在客户端,负责调度application。yarn-client模式下,driver在本地启动,全权负责所有任务调度,即在yarn集群上与多个executor通信(task启动消息、task统计消息、task运行状态、shuffle输出结果等)。比如有100个executor、10个stage、100个task,每个stage都提交1000个task到execotur上去执行,driver就要与executors频繁的交互,通信频率特别高,结束一个stage,有启动一个stage,本机的网络负责就会非常大,造成本机网卡流量激增。
spark on yarn-cluster用于在实际生产环境,executor都与application master交互,application master在集群中某一台nodenamger上,在集群内部通信,不会造成网卡流量激增,但是不方便调试,本地不能看到log,只能通过yarn application -logs application_id命令查看