Apache spark 为什么我的pyspark在我发布时就挂在纱线中?

Apache spark 为什么我的pyspark在我发布时就挂在纱线中?,apache-spark,amazon-ec2,pyspark,yarn,Apache Spark,Amazon Ec2,Pyspark,Yarn,我刚刚在Linux中创建了一个新的AWS实例。我在上面安装了pyspark。它有spark 1.6 我正在用纱线运行pyspark。当我在终端中执行命令pyspark时,它最初启动,但随后我收到消息: dd/mm/YY HH:MM:SS INFO yarn.Client: Application report for application_XXXXXXXXXXX_XXXX (state: ACCEPTED) ……然后这种情况将永远持续下去 因此,我检查了纱线,查看是否还有其他东西在运行: y

我刚刚在
Linux
中创建了一个新的
AWS
实例。我在上面安装了
pyspark
。它有
spark 1.6

我正在用
纱线运行
pyspark
。当我在终端中执行命令
pyspark
时,它最初启动,但随后我收到消息:

dd/mm/YY HH:MM:SS INFO yarn.Client: Application report for application_XXXXXXXXXXX_XXXX (state: ACCEPTED)
……然后这种情况将永远持续下去

因此,我检查了
纱线
,查看是否还有其他东西在运行:

yarn application -list

并且只显示我的应用程序正在运行。如何打开
pyspark
shell并启动我的应用程序,而不仅仅是
被接受

您能否尝试运行spark shell,看看它是否进入运行状态

当Thread没有向其请求资源时,就会发生这种情况

示例:假设纱线有5gb的可用内存,您请求的是10gb。在获得请求的内存之前,您的作业将停留在接受阶段

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

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

添加到Grover answer中,您可以将和设置为True以尽快启动作业。

此问题与资源或队列有关

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


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

好。我怎么知道有多少可用内存?我如何知道我需要多少内存?您是否使用过dr.who或cloudera manager或ambari之类的工具?从那里你可以检查有多少可用内存。你能试着运行:sparkshell--masterlocal并确认它是否成功吗?不,只使用命令行。是
火花壳-主本地
通过并正常工作。这告诉我们什么?这告诉我们spark安装没有问题,因为它能够在本地模式下运行。当你只使用spark shell时会发生什么?当我只使用
spark shell
时,它会打开一个
scala
shell,正如预期的那样,对吗?我的
spark.DynamicLocation.enabled
文件中已经设置为“true”。我不知道在哪里设置
warn.scheduler.fair.preemption
-这是
warn site.xml
spark defaults.conf
的属性还是两者都不是?我实际上使用的是一个公平调度程序,因此在这方面添加一些配置可能是有意义的。您应该将该属性添加到您的warn-site.yml
warn.scheduler.fair.preemption true
。对于高级配置(组、组优先级),我建议发布Cloudera博客&