在纱线上使用火花时,火花执行器和纱线容器之间的关系是什么? 例如,当我设置executor-memory = 20G和纱线容器内存= 10G时,1个执行器是否包含2个容器?</ p>
答案 0 :(得分:2)
Spark Executor在Yarn容器中运行。资源管理器根据需要提供纱线容器。 Yarn容器可以包含一个或多个Spark Executor。 Spark-Executors是运行Tasks的人。 Spark Executor将在Worker Node(DataNode)上启动
在你设置executor-memory = 20G的情况下 - &gt;这意味着您要求一个大小为20GB的容器,您的执行程序将在该容器中运行。现在你可能有一个或多个执行者使用这个20GB的内存而这是每个工人节点。
因此,例如,如果您有一个群集到8个节点,它将为您的作业提供8 * 20 GB的总内存。
以下是yarn-site.xml中可用的3个配置选项,您可以使用它们来查看差异。
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.resource.memory-mb
答案 1 :(得分:0)
在YARN模式下,每个执行程序在一个容器中运行。执行程序的数量与从YARN分配的容器数相同(集群模式除外,它将分配另一个容器来运行驱动程序)。
答案 2 :(得分:0)
在YARN上运行Spark时,每个Spark执行程序都作为YARN容器运行,这意味着容器的数量将始终与Spark应用程序创建的执行程序相同,例如通过spark-submit中的--num-executors参数。