我创建了一个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-submit
Spark应用程序添加到YARN?
答案 0 :(得分:0)
此问题的原因是您的应用程序/驱动程序正在请求比当时群集中的可用资源更多的资源。
由于您尚未指定任何资源参数,因此您的驱动程序将使用默认值请求资源。这意味着您的群集无法提供资源。
可能的原因:
<强>解决方案:强>
答案 1 :(得分:0)
在spark-submit --deploy-mode cluster
你的Spark应用程序之后,驱动程序和执行程序都在集群的节点上。
来自Spark's official documentation:
部署模式区分驱动程序进程的运行位置。在“集群”模式下,框架在集群内部启动驱动程序。在“客户端”模式下,提交者在群集外部启动驱动程序。
您将获得应用程序ID作为应用程序的句柄。
您应该使用yarn application -status
命令来检查Spark应用程序的状态。
-status打印应用程序的状态。