一、问题描述
最近在使用Docker搭建好Spark后进行练习时,报如下错误:
TaskSchedulerImpl:66 - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources.
二、问题解决
查看报错信息,显示是否有足够的内存资源,正好想到Spark的“吃内存”属性,所以翻看了spark-env.sh文件,发现并没有指定Spark的工作内存大小。但因为我是利用Dockerfile生成的集群镜像,所以这里不想改动spark-env.sh文件,直接在启动spark的时候指定了内存为512M:--executor-memory 512M。启动命令如下:
pyspark --master spark://hadoop-maste:7077 --executor-memory 512M
再次执行Spark任务语句,OK,没有新的问题出现。