【发布时间】:2021-12-15 23:34:59
【问题描述】:
问题陈述: 在使用以下版本的 jar/lib 从本地 spark java 代码创建位于存储桶(GCP)的文件数据集时,出现异常。
异常 1:“线程“主”java.lang.NoSuchMethodError 中的异常:org.apache.hadoop.conf.Configuration.getPassword(Ljava/lang/String;)[C”
使用以下 jar/lib 集时出现上述异常。
Spark - org.apache.spark
spark-core_2.11
spark-sql_2.11
Hadoop - org.apache.hadoop
hadoop-auth 3.3.1
hadoop-hdfs 3.3.1
hadoop-common 3.3.1
hadoop-mapreduce-client-core 3.3.1
hadoop-mapreduce-client-jobclient 3.3.1
hadoop-nfs 3.3.1
hadoop-client 3.3.1
com.google.cloud.bigdataoss
gcs-connector-hadoop2-latest
以下是本地java源码
SparkConf objSparkConf = new SparkConf();
objSparkConf.setAppName("Spark");
objSparkConf.setMaster("local[*]");
objSparkConf.set("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem");
objSparkConf.set("fs.AbstractFileSystem.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS");
objSparkConf.set("google.cloud.auth.service.account.enable", "true");
objSparkConf.set("google.cloud.auth.service.account.json.keyfile", "D:\\GCP\\test-environment-json-keyfile.json");
objSparkConf.set("fs.defaultFS", "gs://hudi-bucket");
JavaSparkContext spContext = new JavaSparkContext(objSparkConf);
SparkSession sparkSession = SparkSession.builder().appName("Test_Spark").getOrCreate();
String sFileUrl = "gs://test/2/4/CRUNCH_JOB.3d997666-7d58-4ee8-bf42-a30438983ccb.20211025_072502";
Dataset<Row> dataSet1 = sparkSession.read().format("csv").option("header", "true").load(sFileUrl);
【问题讨论】:
-
上次我检查过,Spark 不使用 Hadoop3 依赖项,因此您应该删除这些,因为 Spark 本身包含这些依赖项,使用其他版本会导致此类错误
标签: java apache-spark hadoop google-cloud-platform