我刚刚在AWS
中启动了一个新的Linux
实例。而且,我在其上安装了pyspark
。它有spark 1.6
。
我与pyspark
一起运行yarn
。当我在终端中执行命令pyspark
时,它最初启动,但后来我收到消息:
dd/mm/YY HH:MM:SS INFO yarn.Client: Application report for application_XXXXXXXXXXX_XXXX (state: ACCEPTED)
.....然后这将永远持续下去。
所以,我检查了yarn
以查看是否有其他内容正在运行:
yarn application -list
仅显示我的应用程序正在运行。如何打开pyspark
shell并启动我的应用程序,而不仅仅是ACCEPTED
?
答案 0 :(得分:4)
你能尝试运行spark-shell并查看它是否进入运行状态吗?
当纱线没有从中请求资源时会发生这种情况。
示例:假设纱线有5gb的可用内存可用,并且您要求10gb。你的工作将停留在Accepted阶段,直到它获得所请求的内存。
尝试使用以下配置运行您的作业:
pyspark --total-executor-cores 2 --executor-memory 1G
答案 1 :(得分:2)
添加到Grover答案,您可以将spark.dynamicAllocation.enabled和yarn.scheduler.fair.preemption设置为True以尽快启动作业。
答案 2 :(得分:2)
此问题与资源或队列有关。
请在yarn-site.xml
中设置所有这些选项,以便在群集上拥有足够的资源:
yarn.scheduler.maximum-allocation-mb
,yarn.scheduler.maximum-allocation-vcores
,yarn.nodemanager.resource.memory-mb
,yarn.nodemanager.resource.cpu-vcores
此外,您可能遇到队列的错误/问题,如果使用公平调度程序,可以通过将queueMaxAMShareDefault
设置为-1.0
中的fair-scheduler.xml
(在具有资源管理器的节点上)来解决,并重新启动资源管理器。