Apache spark 如何在Kubernetes上运行Spark Standalone master,该主机将使用Kubernetes Cluser Manager启动workers

Apache spark 如何在Kubernetes上运行Spark Standalone master,该主机将使用Kubernetes Cluser Manager启动workers,apache-spark,kubernetes,Apache Spark,Kubernetes,我有一个应用程序,目前在本地使用独立模式,通过SparkContext使用spark功能。我们不是使用spark submit上传作业,而是在kubernetes上的容器中运行应用程序,因此我们希望利用kubernetes提供的动态调度来运行作业 我们开始寻找一个helm图表来创建在kubernetes上运行的独立集群,类似于几年前在机器(VM或实际机器)上运行独立集群的方式,并遇到以下问题 问题: 非常古老的火花实例 不使用spark提供的容器 如果您需要保留大的工作节点并随时运行,而不考

我有一个应用程序,目前在本地使用独立模式,通过
SparkContext
使用spark功能。我们不是使用spark submit上传作业,而是在kubernetes上的容器中运行应用程序,因此我们希望利用kubernetes提供的动态调度来运行作业

我们开始寻找一个helm图表来创建在kubernetes上运行的独立集群,类似于几年前在机器(VM或实际机器)上运行独立集群的方式,并遇到以下问题

问题:

  • 非常古老的火花实例
  • 不使用spark提供的容器
  • 如果您需要保留大的工作节点并随时运行,而不考虑您的需要,则此设置会浪费大量资源
接下来我们开始研究spark算子方法

问题:

  • 不支持我们与spark交互的方式,采用的方法是所有应用都是推送到集群运行的独立应用
  • 没有允许我们利用集群中缓存资源的长期主机
在这一过程中,我们发现spark现在支持kubernetes群集管理器(与Thread、mesos的方式类似),因此我们认为这可能是最好的方法,但它仍然没有提供允许内存缓存的独立主机。我想看看是否有办法让
org.apache.spark.deploy.master.master
启动并使用
org.apache.spark.scheduler.cluster.k8s.KubernetesClusterManager


所以我想问的是,有没有人有运行独立主机的经验,可以使用kubernetes后端,比如“KubernetesClusterManager”为了让工作节点动态创建为POD并运行执行器,同时拥有一个永久的独立主节点,允许SparkContext以客户端模式远程连接到它。

您能解决这个问题吗?似乎大多数人都使用spark submit,只有少数人使用SparkContext创建专用应用程序。我们目前也在尝试采用类似您的方法。我们希望有一个running master,在这里我们可以连接笔记本电脑,打开交互式会话,并运行一些查询。然后,如果需要,主机将根据spark会话的配置启动执行器吊舱。