最近我发现自己有点混淆了不同的SPARK设置spark.executor.memory
、SPARK_WORKER_MEMORY
、SPARK_MEM
、SPARK_MASTER_MEMORY
以及与SPARK_WORKER_INSTANCES
和SPARK_WORKER_CORES
的关系
我找到了这篇文章,但它没有讨论SPARK_MASTER_MEMORYSpark配置:Spark_MEM与Spark_WORKER_MEMORY
首先,只有几个关于术语的单词。Spark master是协调从机资源分配的应用程序。Master不执行任何计算。Master只是资源管理员。
Spark worker是worker节点上的应用程序,用于协调给定worker节点的资源。
Spark executor是由Spark worker创建的应用程序,它在worker节点上为驱动程序执行任务。
查看此文档以了解更多详细信息-http://spark.apache.org/docs/latest/cluster-overview.html
spark.executor.memory
-是执行器的内存量。此内存用于给定的用户任务。
SPARK_WORKER_MEMORY-工作程序可以使用多少系统内存在节点上创建执行器。例如,节点上有64gb。您将SPARK_WORKER_MEMORY设置为60gb。这意味着您可以创建2 x 30g的执行器或10 x 6gb的执行器,依此类推
SPARK_MEM AFAIK不再使用。我在当前文档中找不到它
SPARK_MASTER_MEMORY是主机的内存。不应过高:)
SPARK_WORKER_CORS是每个工作的执行器要使用的内核总数
SPARK_WORKER_INSTANCES是每个工作节点的工作线程数。
所有这些参数都在这里描述——http://spark.apache.org/docs/latest/spark-standalone.html