Apache spark 纱线资源管理器';总内存是多少?
我使用aws emr和Thread客户端在1 MasterNode、3 WorkerNode配置中运行Spark群集,MasterNode是客户端机器。所有4个节点都有8GB内存,每个节点有4个核心。考虑到硬件设置,我设置了以下内容:Apache spark 纱线资源管理器';总内存是多少?,apache-spark,pyspark,amazon-emr,Apache Spark,Pyspark,Amazon Emr,我使用aws emr和Thread客户端在1 MasterNode、3 WorkerNode配置中运行Spark群集,MasterNode是客户端机器。所有4个节点都有8GB内存,每个节点有4个核心。考虑到硬件设置,我设置了以下内容: spark.executor.memory = 5G spark.executor.cores = 3 spark.yarn.executor.memoryOverhead = 600 在这种配置下,Thread的ResourceManager所识别的预期总内存
spark.executor.memory = 5G
spark.executor.cores = 3
spark.yarn.executor.memoryOverhead = 600
在这种配置下,Thread的ResourceManager所识别的预期总内存是否为15GB?它显示的是18GB。我只见过运行Spark应用程序时纱线使用高达15GB的容量。这是来自spark.executor.memory*3节点的15GB吗
我想假设纱线总内存是通过spark.executor.Memory+spark.warn.executor.memoryOverhead
计算的,但我在任何地方都找不到记录。找到确切数字的正确方法是什么
我应该能够将spark.executor.memory
的值增加到6G
对吗?我在过去的设置中也遇到过错误。是否需要设置其他配置
编辑-使其看起来像warn.scheduler的workerNodes值。最大分配mb
为6114
或6GB。这是EMR为实例类型设置的默认值。由于6GB*3=18GB,这可能是有道理的。我想重新启动纱线并将该值从6GB增加到7GB,但由于这是一个正在使用的集群,所以我想我的问题仍然存在
我想假设纱线总内存是由spark.executor.Memory+spark.warn.executor.memoryOverhead计算的,但我在任何地方都找不到记录。找到确切数字的正确方法是什么
这有点正确,但倒过来说。纱线的总内存与您为Spark设置的任何配置无关<代码>纱线。调度程序。最大分配mb
控制纱线可以访问和找到的内存量。要使用Spark的所有可用内存,您需要将Spark.executor.memory
+Spark.Thread.executor.memoryOverhead
设置为等于Thread.scheduler.maximum allocation mb
。有关调整spark作业和计算配置的更多信息,请参阅
我应该可以把spark.executor.memory的值增加到6G,对吗
根据电子表格,spark.executor.memory
的上限为5502M
如果warn.scheduler.maximum-allocation-mb为6114M
。手动计算,这是.9*6114
,默认为spark.executor.memoryOverhead
executorMemory*0.10
,最小值为384
()完美,感谢您的解释。设置warn.scheduler.maximum allocation mb
到机器的完整内存有什么不利之处吗?我很惊讶AWS将其设置为整个机器内存的75%(m4.large),这是我没有经验的。非纱线工艺(如操作系统)可能需要一些资源。或者,出于管理目的,纱线可能需要一些资源。但是,这些只是猜测。()讨论了如何使用48 GB中的40 GB(约83%),以实现其价值