就像我之前读过的一篇文章。它说,在新的Kubernetes版本中,已经包含了Spark功能。但是有一些不同的方式,比如用KubernetesPodOperator代替BashOperator / PythonOperator来做SparkSubmit。
合并Airflow + Kubernetes的最佳实践是移除Spark并使用KubernetesPodOperator执行任务吗?
它有更好的性能,因为Kubernetes有Spark没有的AutoScaling。
我需要一个专家在Kubernetes帮助我解释这一点。对于Kubernetes、Spark和Airflow这些东西,我还是个新手。:slight_smile:
谢谢。
发布于 2018-10-11 12:37:08
新的Kubernetes版本中的
已经包含了Spark功能
我觉得你把它弄反了。Spark的新版本可以在Kubernetes集群中运行任务。
使用KubernetesPodOperator而不是BashOperator / PythonOperator来执行SparkSubmit
使用Kubernetes将允许您运行具有任何您想要的隔离依赖项的容器。
含义
对于
spark-submit
必须在所有风流节点上都可用。的zip或egg文件。
移除Spark并使用KubernetesPodOperator执行任务
仍然有很好的理由使用Airflow运行Spark,但相反,您需要打包一个Spark驱动容器,以便在容器内针对Kubernetes集群执行spark-submit
。这样,您只需要安装docker
,而不是Spark (以及所有依赖项)
Kubernetes拥有Spark所没有的AutoScaling
Spark确实有Dynamic Resource Allocation...
发布于 2019-10-22 23:37:46
另一个可能对您有帮助的解决方案是将Apache Livy on Kubernetes (PR:https://github.com/apache/incubator-livy/pull/167)与Airflow HttpOperator一起使用。
https://stackoverflow.com/questions/52751805
复制相似问题