EMR Spark 作业使用的执行器少于集群中的节点
EMR Spark job using less executors than nodes in the cluster
我已经设置了一个由 1 个 m4large 驱动程序和 3 个 m4large 节点组成的测试集群。在不向 spark-submit
添加任何额外配置参数的情况下,我想测试此集群配置。但是,当我检查 Spark UI 时,我可以看到我的 Spark 作业只使用了 2 个执行程序,而且我还注意到 Ganglia 中有一个节点几乎没有做任何事情(就像它根本没有被使用一样)。
我该怎么做才能确保所有节点都完成任务?
spark-submit
不会使用整个集群,除非您指定执行程序的数量,executor-core
和 executor-memory
。默认情况下,它使用 spark 默认配置中指定的配置。你可以在spark安装目录下的spark-defaults.conf
文件中看到默认配置。
现在默认情况下,spark-submit 使用 2 个执行器,执行器中有 512MB 内存。因此,如果您想要整个集群,请使用 spark-submit 命令并指定 executor-core 和 executor-memory。
你可以找到例子here
我已经设置了一个由 1 个 m4large 驱动程序和 3 个 m4large 节点组成的测试集群。在不向 spark-submit
添加任何额外配置参数的情况下,我想测试此集群配置。但是,当我检查 Spark UI 时,我可以看到我的 Spark 作业只使用了 2 个执行程序,而且我还注意到 Ganglia 中有一个节点几乎没有做任何事情(就像它根本没有被使用一样)。
我该怎么做才能确保所有节点都完成任务?
spark-submit
不会使用整个集群,除非您指定执行程序的数量,executor-core
和 executor-memory
。默认情况下,它使用 spark 默认配置中指定的配置。你可以在spark安装目录下的spark-defaults.conf
文件中看到默认配置。
现在默认情况下,spark-submit 使用 2 个执行器,执行器中有 512MB 内存。因此,如果您想要整个集群,请使用 spark-submit 命令并指定 executor-core 和 executor-memory。
你可以找到例子here