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

p8h8hvxi  于 2024-01-06  发布在  Spark
关注(0)|答案(2)|浏览(172)

我们有一个要求,以安排Spark作业,因为我们熟悉apache-airflow,我们想继续与它创建不同的工作流.我搜索网页,但没有找到一步一步的指南,以安排Spark作业上气流和选项,以运行他们在不同的服务器上运行主.
对此的答复将不胜感激。提前感谢。

dzjeubhm

dzjeubhm1#

有三种方法可以使用Apache Airflow远程提交Spark作业:
(1)使用SparkSubmitOperator:此操作符要求您在我们的Airflow服务器上安装了spark-submit二进制文件和YARN客户端配置。它使用给定的选项调用spark-submit命令,阻塞直到作业完成并返回最终状态。好的是,它还可以从spark-submit命令stdout和stderr流式传输日志。
我相信,为了让spark-submit --master yarn --deploy-mode客户端工作,您实际上只需要配置一个yarn-site.xml文件。
在YARN中部署Application Master后,Spark将在Hadoop集群本地运行。
如果您真的需要,您可以添加一个hdfs-site.xmlhive-site.xml,并从Airflow提交(如果可能的话),但至少应该从YARN容器类路径中获取hdfs-site.xml文件
(2)使用SSHOperator:使用此操作符在远程服务器上运行bash命令(通过paramiko库使用SSH协议),如spark-submit。这种方法的好处是您不需要复制hdfs-site.xml或维护任何文件。
(3)SimpleHTTPOperator与Livy配合使用:Livy是一个开源的REST接口,可以从任何地方与Apache Spark进行交互。您只需要有REST调用即可。
我个人更喜欢SSHOperator:)

krcsximq

krcsximq2#

我们可以使用以下任何选项在Airflow中提交spark作业
1.Spark提交操作员。

  1. Python运算符
  2. Bash运算符
    下面的链接向我们解释了使用这些作业https://medium.com/codex/executing-spark-jobs-with-apache-airflow-3596717bbbe3运行气流的代码

相关问题