dataproc中的Spark初始化失败-java.util.ServiceConfigurationError



尝试在dataproc上运行火花作业。但这项工作甚至未能初始化spark上下文。

当以yarn-client为主创建spark上下文时,我得到以下错误:

SparkSession sparkSession = SparkSession.builder()
.appName("Sample App")
.master("yarn-client")
.getOrCreate();
ERROR org.apache.spark.SparkContext: Error initializing SparkContext.
java.util.ServiceConfigurationError: org.apache.spark.scheduler.ExternalClusterManager: Provider org.apache.spark.scheduler.cluster.k8s.KubernetesClusterManager not a subtype
at java.util.ServiceLoader.fail(ServiceLoader.java:239)
at java.util.ServiceLoader.access$300(ServiceLoader.java:185)

当我不设置master或通过local时,当我提交作业时,我会得到以下错误:

ERROR org.apache.spark.SparkContext: Error initializing SparkContext.
java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232)
at java.util.ServiceLoader.access$100(ServiceLoader.java:185)

根据我的理解,这个错误不应该出现,因为谷歌云存储连接器是在dataproc中自动安装/配置的,所以我为什么会看到这个错误。

关于我如何解决这些错误以及它们的含义的任何指导。

您不需要.master("yarn-client"),只需删除该行即可。Dataproc上的Spark已被配置为默认使用YARN作为集群管理器。这些是相关属性:

spark.master=yarn
spark.submit.deployMode=client

如果您确实希望显式设置master,则正确的值为";纱线";而不是";纱线客户";。

有关更多详细信息,请参阅此文档。

相关内容