Apache spark 如何在k8s上使用火花舵图

Apache spark 如何在k8s上使用火花舵图,apache-spark,kubernetes,kubernetes-helm,Apache Spark,Kubernetes,Kubernetes Helm,我是新手。我正在试着用它跑步。我可以看到,默认情况下,它会使1主控和2执行器旋转,并在集群上公开端口:8080 现在我所做的是通过elb公开端口:8080,这样我就可以看到UI 问题是,我是否总是必须在用于旋转母版的图像中烘焙jar或pySpark代码,还是我还有其他选择 我不想将k8s用作spark的群集管理器。我正在尝试查看是否有方法将spark作为应用程序托管在k8s上,并将作业提交给它,因为它是一个具有工作节点的独立集群 因此,与其使用: spark-submit \ ... --mas

我是新手。我正在试着用它跑步。我可以看到,默认情况下,它会使1主控和2执行器旋转,并在
集群
上公开端口:8080

现在我所做的是通过
elb
公开端口:
8080
,这样我就可以看到
UI

问题是,我是否总是必须在用于旋转母版的图像中烘焙
jar
pySpark
代码,还是我还有其他选择

我不想将
k8s
用作
spark
的群集管理器。我正在尝试查看是否有方法将
spark
作为应用程序托管在
k8s
上,并将作业提交给它,因为它是一个具有工作节点的独立集群

因此,与其使用:

spark-submit \
...
--master k8s://https://KUBECLUSTER-DNS-ADDRESS
我想做:

spark-submit \
...
--master spark://SPARK-MASTER-ELB-DNS
此外,我还试图避免在spark docker图像中烘焙
作业

我不想使用k8s作为spark的群集管理器。我试图看看是否有办法将spark作为应用程序托管在k8s上,并将作业提交给它,因为它是一个具有工作节点的独立集群

您可以使用
客户端
集群

客户端:

群集:

此外,我还试图避免在spark docker的形象中烘焙作业

唯一的方法是使用
客户端
模式。基本上,您的驱动程序将位于您运行
spark submit
的任何机器中,这将需要您执行作业所需的所有位。唯一的缺点是,如果客户机与Kubernetes群集不在同一位置,您可能会受到网络延迟的影响

使用
cluster
模式,您可以将内容烘焙到您的容器映像中,因为您的驱动程序可以从集群中的任何从属容器/吊舱启动

# Run on a Spark standalone cluster in client deploy mode
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master spark://IP-ADDRESS-OF-MASTER:7077 \
  --executor-memory 20G \
  --total-executor-cores 100 \
  /path/to/examples.jar \
  1000
./bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master spark://IP-ADDRESS-OF-MASTER:7077 \
  --deploy-mode cluster \
  --supervise \
  --executor-memory 20G \
  --total-executor-cores 100 \
  /path/to/examples.jar \
  1000