一直不是很清楚ApplicationMaster的作用,尤其是在yarn client mode和cluster mode的区别
网上有一些非常好的资料,请移步: https://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/
然而还是不如直接看source code来的真切,参考spark source code(2.1.0)
简单解释下如下图片:
master 即为ApplicationMaster
可以看到 前面即为建立rpc env, 并且取得与driver之间的联系
master本身依赖自身的amEndpoint与driver 通过event驱动
还有自身reportThread 靠allocator与resource manager通信,分配资源