繁体   English   中英

如何在集群模式下将Spark应用提交到YARN?

[英]How to submit Spark application to YARN in cluster mode?

我创建了一个Spark WordCount应用程序,该应用程序在本地模式下使用Shell中的spark-submit命令运行。

当我尝试使用以下命令在YARN上以cluster模式运行它时:

spark-submit --class com.WordCount --master yarn --deploy-mode cluster WordCount-1.0.jar

它似乎没有在运行,并且状态显示为:

application_1480577073003_0019的申请报告(状态:已接受)

如何以集群模式将Spark应用程序spark-submit到YARN?

此问题的原因是您的应用程序/驱动程序正在请求的资源比当时群集中的可用资源更多。

由于您尚未指定任何资源参数,因此驱动程序将请求具有默认值的资源。 这意味着您的集群无法提供资源。

可能的原因:

  1. 您的集群的执行程序没有足够的内存/内核(默认为1GB,1core)
  2. 您的集群中的执行程序具有足够的内存/核心,但它们已分配给其他一些作业。

解:

  1. 降低执行器内存/芯线请求的默认值,或者增加每个纱线容器的内存/芯线
  2. 通过添加更多的执行程序来增加集群资源,或者等待其他工作完成[或者,如果您不喜欢这些工作,则将其杀死;)]

在Spark spark-submit --deploy-mode cluster Spark应用程序之后,驱动程序和执行程序位于群集的节点上。

Spark的官方文档中

部署模式区分驱动程序进程的运行位置。 在“集群”模式下,框架在集群内部启动驱动程序。 在“客户端”模式下,提交者在群集外部启动驱动程序。

您将获得应用程序ID作为应用程序的句柄。

您应该使用yarn application -status命令检查Spark应用程序的状态。

-status打印应用程序的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM