Spark未使用所有已配置的内存

时间:2016-08-24 16:45:51

标签: scala apache-spark bigdata

使用Spark-2.1.0-SNAPSHOT在10个节点集群上以独立客户端模式启动spark 9个节点是工人,第10个是主人和司机。每个256GB的内存。 我很难完全利用我的集群。

我使用以下参数为spark-shell设置执行程序和驱动程序的内存限制为200GB:

spark-shell --executor-memory 200g --driver-memory 200g --conf spark.driver.maxResultSize=200g

当我的应用程序启动时,我可以在控制台和spark web UI /environment/选项卡中看到这些值按预期设置。
但是当我转到/executors/标签时,我发现我的节点只分配了114.3GB的存储空间,请参见下面的屏幕。

How to do BPEL,BPM deployment in JBoss AS7/EAP

此处显示的总内存为1.1TB,而我预计会有2TB。我仔细检查了其他进程没有使用内存 不知道这种差异的根源是什么?我错过了一些设置吗?它是/executors/标签或火花引擎中的错误吗?

1 个答案:

答案 0 :(得分:5)

你正在充分利用内存,但在这里你只看内存的存储部分。默认情况下,存储部分占总内存的60%。

From Spark Docs

  

Spark中的内存使用大致属于以下两类之一:执行和存储。执行内存是指用于在随机,连接,排序和聚合中进行计算的内存,而存储内存是指用于在群集中缓存和传播内部数据的内存。

从Spark 1.6开始,执行内存和存储内存是共享的,因此您不太可能需要调整memory.fraction参数。

如果您正在使用yarn,资源管理器的“Memory Used”和“Memory Total”的主页将表示总内存使用量。

enter image description here