为什么我的pyspark在我推出时只是挂在纱线上?

时间:2017-03-17 17:15:18

标签: apache-spark amazon-ec2 pyspark yarn

我刚刚在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

3 个答案:

答案 0 :(得分:4)

你能尝试运行spark-shell并查看它是否进入运行状态吗?

当纱线没有从中请求资源时会发生这种情况。

示例:假设纱线有5gb的可用内存可用,并且您要求10gb。你的工作将停留在Accepted阶段,直到它获得所请求的内存。

尝试使用以下配置运行您的作业:

pyspark --total-executor-cores 2 --executor-memory 1G

答案 1 :(得分:2)

添加到Grover答案,您可以将spark.dynamicAllocation.enabledyarn.scheduler.fair.preemption设置为True以尽快启动作业。

答案 2 :(得分:2)

此问题与资源或队列有关。

请在yarn-site.xml中设置所有这些选项,以便在群集上拥有足够的资源:  yarn.scheduler.maximum-allocation-mbyarn.scheduler.maximum-allocation-vcoresyarn.nodemanager.resource.memory-mbyarn.nodemanager.resource.cpu-vcores

此外,您可能遇到队列的错误/问题,如果使用公平调度程序,可以通过将queueMaxAMShareDefault设置为-1.0中的fair-scheduler.xml(在具有资源管理器的节点上)来解决,并重新启动资源管理器。