有没有一种方法可以在运行master的其他服务器上提交spark作业

时间:2018-11-16 19:35:19

标签: apache-spark pyspark airflow

我们需要安排火花作业,因为我们熟悉apache-airflow,因此我们希望继续进行该操作以创建不同的工作流程。我搜索了Web,但没有找到分步指南来安排关于气流的火花作业,也没有找到在运行master的其他服务器上运行它们的选项。

对此的答复将不胜感激。 预先感谢。

1 个答案:

答案 0 :(得分:9)

您可以通过3种方式远程使用Apache Airflow提交Spark作业:

(1)使用SparkSubmitOperator :该操作员希望您在我们的Airflow服务器上具有火花提交二进制文件和YARN客户端配置设置。它使用给定的选项调用spark-submit命令,阻塞直到作业完成并返回最终状态。好消息是,它还可以传输spark-submit命令stdout和stderr的日志。

我相信,您实际上只需要配置一个yarn-site.xml文件即可使spark-submit --master yarn --deploy-mode客户端正常工作。

一旦在YARN中部署了Application Master,那么Spark就会在Hadoop集群本地运行。

如果您确实需要,也可以添加一个hdfs-site.xmlhive-site.xml从Airflow提交(如果可能的话),但否则至少应提取hdfs-site.xml个文件来自YARN容器类路径

(2)使用SSHOperator :使用此操作符可在远程服务器上运行bash命令(通过paramiko库使用SSH协议),例如spark-submit。这种方法的好处是您无需复制hdfs-site.xml或维护任何文件。

(3)SimpleHTTPOperator与Livy一起使用:Livy是一个开放源代码的REST界面,可以从任何地方与Apache Spark进行交互。您只需要进行REST调用。

我个人更喜欢 SSHOperator :)