Apache spark 在纱线上运行Spark应用程序,不提交Spark

Apache spark 在纱线上运行Spark应用程序,不提交Spark,apache-spark,yarn,Apache Spark,Yarn,我知道可以使用Spark submit--master warn在纱线上执行Spark应用程序 问题是: 是否可以使用纱线命令在纱线上运行Spark应用程序 如果是这样,则可以使用纱线REST API作为接口,以统一的方式运行spark和MapReduce应用程序。与所有纱线应用程序一样,spark在纱线上部署时实现客户端和应用程序管理员。如果查看Spark存储库中的实现,您将了解如何创建自己的客户机/应用程序管理员: . 但开箱即用似乎是不可能的 我还没有看到最新的软件包,但几个月前,这样的事

我知道可以使用
Spark submit--master warn
在纱线上执行Spark应用程序

问题是: 是否可以使用
纱线
命令在纱线上运行Spark应用程序


如果是这样,则可以使用纱线REST API作为接口,以统一的方式运行spark和MapReduce应用程序。

与所有纱线应用程序一样,spark在纱线上部署时实现客户端和应用程序管理员。如果查看Spark存储库中的实现,您将了解如何创建自己的客户机/应用程序管理员:
. 但开箱即用似乎是不可能的

我还没有看到最新的软件包,但几个月前,这样的事情是不可能“开箱即用”的(这是直接来自cloudera支持部门的信息)。我知道这不是你所希望的,但这是我所知道的。

谢谢你的提问。 如上所述,AM是编写和提交应用程序的好方法,无需调用spark submit。 社区围绕着纱线的
spark submit
命令进行了构建,添加了一些标志,以便于添加jar和/或config等,这些都是使应用程序成功执行所必需的

另一种解决方案(可以尝试):您可以将spark作业作为Oozie工作流中的一个操作。 根据您希望实现的目标,这两条路线看起来都不错。
希望能有所帮助。

我知道这个问题已经有一年了,但对于任何一个偶然发现这个问题的人来说,现在看来这应该是可能的。我一直在尝试做类似的事情,并一直试图遵循霍顿工厂的做法

基本上,您需要做的是将jar上传到HDFS,根据Thread REST API文档创建Spark Job JSON文件,然后使用curl命令启动应用程序。该命令的一个示例是:

curl -s -i -X POST -H "Content-Type: application/json" ${HADOOP_RM}/ws/v1/cluster/apps \
     --data-binary spark-yarn.json 

我不是专家,但我不会这么说。
spark submit
只是一个构建类路径的脚本。构建您自己的ApplicationMaster是独立的,我的意思是,您不需要为每个应用程序构建您自己的ApplicationMaster,因为它足够通用;你可以只做一个,就像spark submit中使用的一样。@Teepeemm我已经更新了答案以提供更多信息。这是否更清楚地回答了这个问题?