如何在集群模式下向纱线提交Spark应用程序



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

当我尝试使用命令以纱线上的cluster模式运行它时:

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

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

应用程序的应用报告_1480577073003_0019(状态:接受)

如何在集群模式下将火花应用到纱线?

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

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

可能的原因:

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

解决方案:

  1. 降低执行程序内存/内核请求的默认值,或者增加每纱线范围内的内存/内核
  2. 通过添加更多执行者或等待其他作业完成[或在您不喜欢这些工作时杀死它们来增加集群资源;)]

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

来自Spark的官方文件:

部署模式区分驱动程序进程在哪里运行。在"群集"模式下,该框架启动了集群内部的驱动程序。在"客户端"模式下,提交器将启动集群外部的驱动程序。

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

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

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

相关内容

  • 没有找到相关文章

最新更新