1、WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster uito ensure that workers are registered and have sufficient memory
当前的集群的可用资源不能满足应用程序所请求的资源。资源分2类: cores 和 ram
Core代表对执行可用的executor slots
Ram代表每个Worker上被需要的空闲内存来运行你的Application。
解决方法:
应用不要请求多余空闲可用资源的
关闭掉已经执行结束的Application
2、Application isn’t using all of the Cores: How to set the Cores used by a Spark App
设置每个App所能获得的core解决方法:
spark-env.sh里设置spark.deploy.defaultCores
或spark.cores.max
3、Spark Executor OOM: How to set Memory Parameters on Spark
OOM是内存里堆的东西太多了1、增加job的并行度,即增加job的partition数量,把大数据集切分成更小的数据,可以减少一次性load到内存中的数据量。InputFomart, getSplit来确定。
2、spark.storage.memoryFract