运行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)
但这对于完成我们的工作来说是不够的。有人找到了解决此问题的方法吗?
答案 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