无法在波光粼粼的水壳中增加2GB以上的工人记忆力

时间:2016-04-07 01:40:43

标签: apache-spark h2o sparkling-water

运行bin/sparkling-shell

org.apache.spark.SparkException: Asked to launch cluster with 2048 MB RAM / worker but requested 20480 MB/worker

发生以下错误:

spark-env.sh

我们在export SPARK_WORKER_MEMORY=108GB export SPARK_WORKER_INSTANCES=4 中设置了以下内容:

spark-defaults.conf

以下spark.executor.memory 20g spark.driver.memory 8g

spark.executor.memory   2g

我们可以让shell启动的唯一方法是将工作室内存重置为2GB:

#!/usr/bin/env bash

msgPrefix="Ping from $HOSTNAME to"
prevNode=
while read node ip; do
  [[ "$node" == "$prevNode" ]] || i=1
  ping -I eth0 -c 3 "$ip" >/dev/null && status='is good' || status='failed'
  echo "$msgPrefix $node IP$i $ip $status"
  ((++i)); prevNode=$node
done < <(awk -F'"|\\.domain\\.com|,' '{ print $2, $5 }' ip_details.txt)

但这对于完成我们的工作来说是不够的。有人找到了解决此问题的方法吗?

2 个答案:

答案 0 :(得分:0)

我可以询问您的MASTER环境变量的内容是什么吗?

如果您将MASTER设置为"local-cluster[numOfExecutors,numOfExecutorCores,numOfExecMemory]",其中numOfExecMemory低于您在spark-defaults文件中的内存请求,则可能会发生这种情况。

答案 1 :(得分:0)

你的spark-defaults.conf文件中有一个拼写错误:

spark.executor.memory   20g
spark.driver.memory     8g

这里spark.executor.memory设置为20g(20千兆字节= 20480 mb),转换为每个工作节点20480 mb。因此错误 - &gt;

org.apache.spark.SparkException: Asked to launch cluster with 2048 MB RAM / worker but requested 20480 MB/worker

它说你要求组建每个工人20480 mb的集群。

您应该将spark.executor.memory 20g spark-defaults.conf文件编辑为spark.executor.memory 2g

如果您想增加每个工作人员的内存,只需将2g更改为您想要的装载。

还要相应地编辑spark-env.sh:

export SPARK_WORKER_MEMORY=108GB
export SPARK_WORKER_INSTANCES=4

将为每个节点创建4个工作器实例,每个节点具有1 GB内存。

因此,如果您想要每个节点4gb,那么请在spark-env.sh

export SPARK_WORKER_MEMORY=4g
export SPARK_WORKER_INSTANCES=1

和spark-defaults.conf为:

spark.executor.memory   4g
spark.driver.memory     8g