如何在EMR主群集(由Terraform创建)和Airflow之间建立连接。我在具有相同SG,VPC和子网的AWS EC2服务器下设置了Airflow。
我需要解决方案,以便Airflow可以与EMR对话并执行Spark提交。
这些博客对建立连接后的执行情况有所了解。(帮助不大)
在气流中,我已经使用用于AWS和EMR的UI建立了连接:-
下面的代码将列出处于活动状态和已终止的EMR集群,我也可以进行微调以获得活动集群:-
A
我的问题是-如何更新上面的代码可以执行Spark提交操作
答案 0 :(得分:4)
虽然它可能无法直接解决您的特定查询,但从广义上讲,您可以通过以下几种方式通过spark-submit
在(远程)EMR
上触发Airflow
/ p>
使用Apache Livy
EMR
Livy
处于早期阶段,它的API
在我看来incomplete and wonky 使用EmrSteps
API
EMR
EmrStepSensor
(与EmrAddStepsOperator
并存)EMR
集群上,您不能同时运行多个步骤(尽管存在一些hacky workarounds) 使用SSHHook
/ SSHOperator
spark-submit
命令涉及很多参数,那么(以编程方式)构建该命令可能会变得很麻烦EDIT-1
似乎还有另一种简单的方法
指定远程master
-IP
有用的链接
答案 1 :(得分:0)
使用Terraform创建EMR后,您将获得主IP为aws_emr_cluster.my-emr.master_public_dns
希望这会有所帮助。