如何使用Kubernetes在火花集群中安排作业

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

1.我如何安排夜间批量运行? 我明白,Kubernetes具有类似cron的function(请参阅文档 )。 但从我的理解,这是做日程安排容器部署,我已经有我的容器启动和运行(因为我使用SparkStreaming Spark的集群),我只是想提交一个工作,每晚集群。

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

我已经试过通过文件查看,但我不确定如何设置它。 任何链接或参考回答我的问题,高度赞赏。

你应该绝对使用CronJob资源来执行备份…另请参阅这些回购帮助启动k8s的火花

https://github.com/ramhiser/spark-kubernetes

https://github.com/navicore/spark-on-kubernetes