简介
spark 的 yarn 运行模式根据 Driver 在集群中的位置分成两种:
1)yarn-client 客户端模式
2)yarn-cluster 集群模式
yarn 模式和 standalone 模式不同,standalone 模式需要启动 spark 独立集群,这样 SparkContext 才能与 Master 进行交互通信。而 yarn 模式的资源管理全部托管给的 ResourceManager 了,所以它不需要启动 spark 独立集群,那么也就意味着你无法访问 http://master:8080 这个页面了。
yarn 集群模式
spark 的 yarn 集群模式,Driver 运行在 Application Master 上,Application Master 进程同时负责驱动我们的代码程序和从 ResourceManager 申请资源。由于它直接运行在 yarn 的 Container 当中,所以并不需要客户端,客户端可以在提交完毕之后就关闭,如图:
1)客户端将生成作业信息并提交给 ResourceManager
2)ResourceManager 会选择一个 NodeManager 去启动 container,并且把 ApplicationMaster 分配给它去运行
3)NodeManager 接收到以后就会启动 ApplicationMaster 并初始化 dag 作业,此时 NodeManager 就成为 Driver
4