Apache spark 如何使用Kubernetes在spark集群中调度作业

Apache spark 如何使用Kubernetes在spark集群中调度作业,apache-spark,docker,kubernetes,spark-streaming,Apache Spark,Docker,Kubernetes,Spark Streaming,我对Spark和Kubernetes都比较陌生,但我正试图了解这在生产环境中是如何工作的。我计划使用Kubernetes部署Spark群集。然后,我将使用SparkStraeming处理来自Kafka的数据,并将结果输出到数据库。此外,我还计划设置一个每天晚上运行的计划Spark batch作业 1。如何安排夜间批量运行? 我知道Kubernetes有一个类似cron的特性(请参阅)。但据我所知,这是为了安排容器部署,我已经准备好容器并运行了(因为我使用Spark集群进行SparkStreami

我对Spark和Kubernetes都比较陌生,但我正试图了解这在生产环境中是如何工作的。我计划使用Kubernetes部署Spark群集。然后,我将使用SparkStraeming处理来自Kafka的数据,并将结果输出到数据库。此外,我还计划设置一个每天晚上运行的计划Spark batch作业

1。如何安排夜间批量运行? 我知道Kubernetes有一个类似cron的特性(请参阅)。但据我所知,这是为了安排容器部署,我已经准备好容器并运行了(因为我使用Spark集群进行SparkStreaming),我只想每晚向集群提交一个作业

2。SparkStreaming应用程序(可能有很多)存储在哪里?如何启动它? 我是否将Spark容器与SparkStreaming应用程序分离(即,容器是否应仅包含一个干净的Spark节点,并将SparkStreaming应用程序保持在持久存储中,然后使用kubectl将作业推送到容器)? 或者我的docker文件应该从存储库克隆SparkStreaming应用程序并负责启动它


我试着看了看文档,但我不确定如何设置它。非常感谢回答我问题的任何链接或参考。

您绝对应该使用
CronJob
资源来执行备份。。。另请参见这些回购协议,以帮助在k8s上启动spark


来自spark 2.3的作业可以直接从spark提交。这些已经过时了。