spark?

1tu0hz3e  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(378)

假设我们有一个spark作业在集群模式下运行,其中集群管理器是yarn。
在群集模式下
用户向集群管理器提交一个预编译的jar、python脚本。集群管理器会通知特定的节点管理器启动应用程序主机。
然后,spark驱动程序在应用程序主机上运行。驱动程序将包含转换和操作的用户代码转换为称为dag的逻辑计划。然后将dag转换为实际执行计划
然后,应用程序主机与集群管理器通信并协商资源。请求诸如首选执行器位置和容器数量之类的资源。
此时,集群管理器是分配Yarn容器还是应用程序主机分配Yarn容器?集群管理器是否也创建了spark执行器,或者应用程序主程序是否也创建了spark执行器?

wz8daaqr

wz8daaqr1#

提交给Yarn的Spark应用程序转化为Yarn
应用程序。
因此,当客户机向资源管理器(组件)提交新的应用程序/作业请求时。
资源管理器(rm)接受作业请求并分配
容器以启动给定应用程序/作业的应用程序主机。
应用程序主机可以被认为是一个专门的容器
将管理/监控应用程序/作业任务。
应用程序主机向资源管理器发送请求,请求
运行应用程序/作业所需的资源。
资源管理器返回一个容器列表以及
可以在其上生成的salve节点的列表。
应用程序主程序启动容器(在称为
在每个指定的salve节点上。
首先要了解的事实是:每个spark执行器都作为一个Yarn容器运行。应用程序的spark执行器是固定的,分配给每个执行器的资源也是固定的,spark应用程序在其整个持续时间内占用资源。这与mapreduce应用程序不同,mapreduce应用程序在每个任务结束时不断返回资源,并在下一个任务开始时再次分配资源。

相关问题