我有emr集群,配置如下。过度利用带有火花的纱线资源
Data Nodes : 6
RAM per Node : 56 GB
Cores per Node: 32
Instance Type: M4*4xLarge
我在spark-sql下运行,并行执行5个hive脚本。
spark-sql --master yarn --num-executors 1 --executor-memory 20G --executor-cores 20 --driver-memory 4G -f hive1.hql & spark-sql --master yarn --num-executors 1 --executor-memory 20G --executor-cores 20 --driver-memory 4G -f hive2.hql & spark-sql --master yarn --num-executors 1 --executor-memory 20G --executor-cores 20 --driver-memory 4G -f hive3.hql & spark-sql --master yarn --num-executors 1 --executor-memory 20G --executor-cores 20 --driver-memory 4G -f hive4.hql & spark-sql --master yarn --num-executors 1 --executor-memory 20G --executor-cores 20 --driver-memory 4G -f hive5.hql
但是,270 GB的存储器是由纱线利用。
如在每给定的命令的参数,
每个saprk作业应仅利用120 GB RAM。
1 * 20 + 4 = 24 GB RAM
5作业= 5 * 24 = 120 GB
但是,为什么纱线被利用270 GB RAM? (集群中没有其他hadoop作业正在运行)
我是否需要包含任何额外参数来限制纱线资源利用率?
您是否在使用EMR设置:此集群的maximizeResourceAllocation为true?如果从控制台启动它,它将被默认使用。 –
是的。默认情况下,此群集的动态资源分配为true。将其更改为false可解决我的问题。请查看答案部分以获取更多解释。 –