我的问题可能听起来很愚蠢,但很长一段时间困扰我。
上面显示的图片是分布式Spark应用程序的组件。我认为这张图片表明主节点永远不会执行实际任务,但只能作为集群管理器。这是真的吗?
顺便说一句,这里的tasks
是指用户提交的任务。
答案 0 :(得分:3)
是的,主节点执行驱动程序进程并且不运行任务。任务在工作节点上的执行程序进程中运行。从CPU的角度来看,主节点很少受到压力,但是,根据广播变量,累加器和{{1}}的使用方式,在RAM使用方面可能会非常紧张。
答案 1 :(得分:1)
更多地解释不同的角色:
驱动程序准备上下文并使用RDD转换和操作声明对数据的操作。
驱动程序将序列化的RDD图提交给主服务器。主服务器从中创建任务并将其提交给工作人员执行。它协调不同的工作阶段。
工人是实际执行任务的地方。它们应具有执行RDD上请求的操作所需的资源和网络连接。