我想使用Airflow来编排工作,包括运行一些猪脚本,shell脚本和spark作业。
主要在Spark作业上,我想使用Apache Livy,但不确定使用或运行spark-submit是个好主意。
即使我提交了,使用Airflow跟踪Spark作业的最佳方法是什么?
答案 0 :(得分:3)
我的假设是您的应用程序JAR
包含要提交给远程Java
集群的Scala
/ Spark
代码。在针对其他可能性进行评估时,Livy
可以说是远程spark-submit
的最佳选择:
master
IP :Requires修改全局配置/环境变量 SSHOperator
:SSH
连接可能会断开 EmrAddStepsOperator
:取决于EMR
关于跟踪
Livy
only reports state
而不是进度(阶段完成百分比)Livy
API对REST
服务器进行轮询,并在控制台中保留打印日志,这些日志将显示在任务日志中WebUI(View Logs
)其他注意事项
Livy
doesn't support对SparkSession
请求重复使用POST/batches
PySpark
中编写应用程序代码,并使用POST/session
个请求参考
livy/examples/pi_app
rssanders3/livy_spark_operator_python_example
有用的链接