Apache spark Spark Hive reporting java.lang.NoSuchMethodError:org.apache.hadoop.Hive.metastore.api.Table.setTableName(Ljava/lang/String;)V

Apache spark Spark Hive reporting java.lang.NoSuchMethodError:org.apache.hadoop.Hive.metastore.api.Table.setTableName(Ljava/lang/String;)V,apache-spark,hive,Apache Spark,Hive,我正在尝试使用SparkSession从配置单元读取数据 我的代码: val warehouseLocation=“/user/xx/warehouse” val spark=火花会话 .builder() .master(“本地[*]”) .appName(“HiveReceiver”) .config(“spark.sql.warehouse.dir”,warehouseLocation) .enableHiveSupport() .getOrCreate() 导入spark.sql sql

我正在尝试使用SparkSession从配置单元读取数据

我的代码:

val warehouseLocation=“/user/xx/warehouse”

val spark=火花会话 .builder() .master(“本地[*]”) .appName(“HiveReceiver”) .config(“spark.sql.warehouse.dir”,warehouseLocation) .enableHiveSupport() .getOrCreate()

导入spark.sql

sql(“从sparktest.test中选择*).show()

spark.stop()

我的版本:

火花:2.1.1

蜂巢:1.2.1

hadoop:2.7.1

但在IDEA中运行时也有一些例外:

线程“main”java.lang.NoSuchMethodError中出现异常: org.apache.hadoop.hive.metastore.api.Table.setTableName(Ljava/lang/String;)V 在 org.apache.spark.sql.hive.MetastoreRelation.(MetastoreRelation.scala:76) 在 org.apache.spark.sql.hive.HiveMetastoreCatalog.lookupRelation(HiveMetastoreCatalog.scala:142) 在 org.apache.spark.sql.hive.HiveSessionCatalog.lookupRelation(HiveSessionCatalog.scala:70) 在 org.apache.spark.sql.catalyst.Analyzer$resolvelations$.org$apache$spark$sql$catalyst$analysis$Analyzer$resolvelations$$lookupTableFromCatalog(Analyzer.scala:457) 在 org.apache.spark.sql.catalyst.analysis.Analyzer$resolvelations$$anonfun$apply$8.applyOrElse(Analyzer.scala:479) 在 org.apache.spark.sql.catalyst.analysis.Analyzer$resolvelations$$anonfun$apply$8.applyOrElse(Analyzer.scala:464) 在 org.apache.spark.sql.catalyst.plans.logical.LogicalPlan$$anonfun$resolveOperators$1.apply(LogicalPlan.scala:61) 在 org.apache.spark.sql.catalyst.plans.logical.LogicalPlan$$anonfun$resolveOperators$1.apply(LogicalPlan.scala:61) 在 org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:70) 在 org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolveOperators(LogicalPlan.scala:60) 在 org.apache.spark.sql.catalyst.plans.logical.LogicalPlan$$anonfun$1.apply(LogicalPlan.scala:58) 在 org.apache.spark.sql.catalyst.plans.logical.LogicalPlan$$anonfun$1.apply(LogicalPlan.scala:58) 在 org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$4.apply(TreeNode.scala:307) 在 org.apache.spark.sql.catalyst.trees.TreeNode.mapProductIterator(TreeNode.scala:188) 在 org.apache.spark.sql.catalyst.trees.TreeNode.mapChildren(TreeNode.scala:305) 在 org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolveOperators(LogicalPlan.scala:58) 在 org.apache.spark.sql.catalyst.Analyzer$resolvelations$.apply(Analyzer.scala:464) 在 org.apache.spark.sql.catalyst.Analyzer$resolvelations$.apply(Analyzer.scala:454) 在 org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1$$anonfun$apply$1.apply(RuleExecutor.scala:85) 在 org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1$$anonfun$apply$1.apply(RuleExecutor.scala:82) 在 scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:124) 位于scala.collection.immutable.List.foldLeft(List.scala:84) org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1.apply(RuleExecutor.scala:82) 在 org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1.apply(RuleExecutor.scala:74) 位于scala.collection.immutable.List.foreach(List.scala:381) org.apache.spark.sql.catalyst.rules.RuleExecutor.execute(RuleExecutor.scala:74) 在 org.apache.spark.sql.execution.QueryExecution.analyzed$lzycompute(QueryExecution.scala:69) 在 org.apache.spark.sql.execution.QueryExecution.analysis(QueryExecution.scala:67) 在 org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:50) 位于org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:63) org.apache.spark.sql.SparkSession.sql(SparkSession.scala:592)位于 com.bdp.steaming.HiveReceiver$.main(HiveReceiver.scala:24)位于 com.bdp.steaming.HiveReceiver.main(HiveReceiver.scala)


有人可以知道bug在哪里?

我已经解决了这个问题。在我的例子中,我的项目中有两个配置单元元存储依赖项,然后我排除了一个配置单元元存储依赖项。它成功了。

我已经解决了这个问题。在我的例子中,我的项目中有两个配置单元元存储依赖项,然后我排除了一个hive元存储依赖。它起作用了。

有人能告诉我为什么吗?有人能告诉我为什么吗?谢谢。