Spark作业使用Kubernetes替代YARN时master参数配置咨询
Spark on Kubernetes 中master参数的正确配置
没错,当你要用Kubernetes替代YARN运行Spark作业时,master参数确实要配置为kubernetes,不过这里有几个实用细节要提醒你:
- 完整的标准格式是
k8s://<K8S_API_SERVER_ADDRESS>:<PORT>,比如k8s://https://192.168.1.100:6443。如果你的Spark客户端已经通过kubeconfig文件正确配置了Kubernetes集群的访问权限,直接写kubernetes也可以,Spark会自动从环境变量或者默认配置路径读取集群连接信息。 - 光设置master还不够,你通常还需要补充一些Kubernetes专属的配置,比如:
- 指定Spark镜像:
--conf spark.kubernetes.container.image=your-custom-spark-image:latest - 配置驱动Pod的名称前缀:
--conf spark.kubernetes.driver.pod.name=demo-spark-driver - 设置executor的数量:
--conf spark.executor.instances=4
- 指定Spark镜像:
给你调整后的代码示例:
val spark = SparkSession.builder() .appName("Demo") .master("k8s://https://your-k8s-api-server:6443") // 或者直接写"kubernetes" .getOrCreate()
另外一个小建议:如果是通过spark-submit提交作业,更推荐在命令行里指定--master kubernetes,而不是硬编码在代码中。这样你的代码可以不用修改就适配不同的运行环境,比如本地测试、YARN集群或者Kubernetes集群,灵活性更高。
内容的提问来源于stack exchange,提问作者Khumar
相关产品推荐
相关产品推荐

