apache-spark - 通过在 Livy 上提交批量 POST 方法并跟踪作业,使用 Airflow 提交 Spark 作业
问题描述
我想使用 Airflow 来编排作业,包括运行一些 pig 脚本、shell 脚本和 spark 作业。
主要在 Spark 作业上,我想使用 Apache Livy,但不确定使用或运行 spark-submit 是否是个好主意。
即使我提交了使用 Airflow 跟踪 Spark 作业的最佳方法是什么?
解决方案
我的假设是您的应用程序JAR
包含要提交到远程集群的代码Java
。根据其他可能性进行评估时,可以说是远程的最佳选择:Scala
Spark
Livy
spark-submit
- 指定远程
master
IP:需要修改全局配置/环境变量 - 使用
SSHOperator
:SSH
连接可能会中断 - 使用
EmrAddStepsOperator
:取决于EMR
关于跟踪
Livy
只报告state
而不是进度(阶段完成百分比)- 如果您同意,您可以通过 API轮询
Livy
服务器并在控制台中REST
继续打印日志,这些将出现在 WebUI 的任务日志中 (View Logs
)
其他注意事项
Livy
不SparkSession
支持POST/batches
请求重用- 如果这是必要的,您将不得不编写您的应用程序代码
PySpark
并使用POST/session
请求
参考
有用的链接
推荐阅读
- bash - 构建连接多个源路径并转换为 Cygwin RSync 执行以复制特定硬链接文件夹树的干净方法?
- oracle - 如何使用输入和输出参数pl/sql获取存储过程的输出
- html - 位置粘性在引导程序 3 中不起作用
- python - 将文件保存到带有嵌套循环索引的pickel作为文件名
- json - 如何在 JSON+LD 头中使用许多不同的数据文件更改 forloop 目标,包括
- excel - 如何编写一个程序来复制特定的单词,然后粘贴该行并在 excel vba 中模仿接下来的 7 行
- memory - 在 impala 中的 50 个 union all 语句中引用相同的 hdfs 表,这会导致内存问题
- python - 无法从 cPanel cron 作业调用 Python 3
- php-7 - PHPDoc 注释返回类型
- gitlab - 任何人都可以发布具有外部子模块的 GitLab CI 的工作示例吗?