两种模式
- yarn-cluster 适用于生产环境;
- yarn-client 适用于交互和调试,也就是希望快速地看到Application的输出。
Spark shell and Spark Thrift server both run in YARN-client mode only.
Application Master:
在yarn中,每个Application实例都有一个Application Master进程,它是Application启动的第一个容器。它负责和ResourceManager打交道,并请求资源。获取资源之后告诉NodeManager为其启动container。
深层次的含义来讲
- yarn-cluster和yarn-client模式的区别 其实就是 Application Master进程的区别。
- yarn-cluster模式下,driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行。这种模式不适合运行交互类型的作业。
- yarn-client模式下,Application Master仅仅向YARN请求executor,Client会和请求的container通信来调度他们工作,也就是说Client不能离开。