Apache spark 如何在集群模式下向纱线提交Spark应用程序?
我已经创建了一个Spark WordCount应用程序,我在shell中以本地模式使用Apache spark 如何在集群模式下向纱线提交Spark应用程序?,apache-spark,yarn,Apache Spark,Yarn,我已经创建了一个Spark WordCount应用程序,我在shell中以本地模式使用Spark submit命令运行该应用程序 当我尝试在集群模式下使用以下命令在纱线上运行它时: spark-submit --class com.WordCount --master yarn --deploy-mode cluster WordCount-1.0.jar 它似乎没有运行,并显示以下状态: 申请的申请报告(状态:已接受) 如何spark在集群模式下向纱线提交spark应用程序?出现此问题的原因
Spark submit
命令运行该应用程序
当我尝试在集群
模式下使用以下命令在纱线上运行它时:
spark-submit --class com.WordCount --master yarn --deploy-mode cluster WordCount-1.0.jar
它似乎没有运行,并显示以下状态:
申请的申请报告(状态:已接受)
如何
spark在集群模式下向纱线提交spark应用程序?出现此问题的原因是您的应用程序/驱动程序请求的资源多于当时集群中的可用资源
由于您尚未指定任何资源参数,因此驱动程序将使用默认值请求资源。这意味着您的集群无法提供资源
可能的原因:
您的群集没有具有足够内存/内核的执行器(默认为1GB,1个内核)
您的集群有具有足够内存/内核的执行器,但它们被分配给其他一些作业
解决方案:
减少执行器内存/芯请求的默认值或增加每个纱线容器的内存/芯数
通过添加更多执行器或等待其他作业完成来增加群集资源[如果您不喜欢这些作业,请杀死它们;)]
在您spark提交--deploy mode cluster
您的spark应用程序之后,驱动程序和执行器位于集群的节点上
发件人:
部署模式区分驱动程序进程运行的位置。在“集群”模式下,框架在集群内部启动驱动程序。在“客户端”模式下,提交者在集群外部启动驱动程序
您将获得应用程序id作为应用程序的句柄
应使用纱线应用程序-状态
命令检查火花应用程序的状态
-status打印应用程序的状态
检查纱线是否符合作业的所有要求,如执行器数量、芯线等