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

时间:2017-01-26 07:47:29

标签: apache-spark docker kubernetes spark-streaming

我对Spark和Kubernetes都很陌生,但我正在努力了解它如何在生产环境中发挥作用。我打算使用Kubernetes来部署Spark集群。然后我将使用SparkStraeming处理来自Kafka的数据并将结果输出到数据库。此外,我计划建立一个每晚运行的计划Spark批处理作业。

1。我如何安排夜间批次运行? 据我所知,Kubernetes具有类似cron的功能(参见documentation)。但根据我的理解,这是安排容器部署,我已经启动并运行了容器(因为我将Spark集群用于SparkStreaming),我只想每晚向集群提交一个作业。

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

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

1 个答案:

答案 0 :(得分:-1)

你绝对应该使用CronJob资源来执行备份...另请参阅这些repos以帮助k8s上的bootstrap spark

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

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