尝试在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,则正确的值为";纱线";而不是";纱线客户";。
有关更多详细信息,请参阅此文档。