找不到org.apache.hadoop.conf.Configuration

找不到org.apache.hadoop.conf.Configuration,hadoop,hdfs,Hadoop,Hdfs,我有一个JavaMaven项目。它将文件从本地复制到HDFS。我在pom.xml中使用了hadoop。但是,它仍然失败,出现以下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration at apache.spark.poc.utils.FileProcessor.<clinit>(FileProcessor.java:60) Caus

我有一个JavaMaven项目。它将文件从本地复制到HDFS。我在pom.xml中使用了hadoop。但是,它仍然失败,出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
    at apache.spark.poc.utils.FileProcessor.<clinit>(FileProcessor.java:60)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/hadoop/conf/Configuration 位于apache.spark.poc.utils.FileProcessor.(FileProcessor.java:60) 原因:java.lang.ClassNotFoundException:org.apache.hadoop.conf.Configuration 位于java.net.URLClassLoader.findClass(URLClassLoader.java:381) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:424) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 还有一个 以下是my pom.xml中的依赖项: 这里有我遗漏的东西吗?我还通过IDE检查了它,并且能够在jar下看到hadoop公共和配置类

<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-common</artifactId>
  <version>2.2.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.11</artifactId>
  <version>2.1.1</version>
  <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming_2.10 -->
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-streaming_2.11</artifactId>
  <version>2.1.1</version>
  <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka_2.10 -->
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-streaming-kafka_2.10</artifactId>
  <version>1.6.3</version>
  <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10 -->
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql_2.11</artifactId>
  <version>2.1.1</version>
  <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql-kafka-0-10_2.11 -->
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql-kafka-0-10_2.11</artifactId>
  <version>2.1.1</version>
  <!-- <scope>provided</scope> -->
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka-clients</artifactId>
  <version>0.10.2.1</version>
</dependency>
<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka_2.11</artifactId>
  <version>0.11.0.0</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.6.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.44</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-dbcp2</artifactId>
  <version>2.0</version>
</dependency>
<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.6</version>
</dependency>
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->

org.apache.hadoop
hadoop通用
2.2.0
假如
org.apache.spark
spark-core_2.11
2.1.1
假如
org.apache.spark
spark-U 2.11
2.1.1
假如
org.apache.spark
spark-streaming-kafka_2.10
1.6.3
假如
org.apache.spark
spark-sql_2.11
2.1.1
假如
org.apache.spark
spark-sql-kafka-0-10_2.11
2.1.1
org.apache.kafka
卡夫卡客户
0.10.2.1
org.apache.kafka
卡夫卡2.11
0.11.0.0
com.fasterxml.jackson.core
杰克逊数据绑定
2.6.3
mysql
mysql连接器java
5.1.44
org.apache.commons
commons-dbcp2
2
公地郎
公地郎
2.6
org.apache.commons
commons-lang3
3.1

找到了问题。它的范围与提供的相同。我对这些库进行了一个接一个的分析,并检查了部署的所有内容

hadoop公共库与spark core一起被选中。但是,spark core标记为,提供了范围。因此,它在编译阶段可用,但在我通过IntelliJ运行它时不可用


问题已修复。

请尝试将
hadoop客户端
也包含在您的依赖项中。谢谢您的评论。但这没有帮助。奇怪的是,我能够在External_Dependencies->hadoop-common-2.2.0.jar->org.apache.hadoop.conf.Configuration下看到配置类。尽管如此,在执行时,我还是找不到它。你的版本到处都是。。。首先,Spark Kafka已经包括了Kafka的客户。其次,如果包含Spark Thread,则可以删除(旧的)Hadoop版本。最后,不要将Spark 1.6和2 dependencies结合使用。另外,您不需要Spark将本地文件复制到HDFS。。。您的Hadoop POM版本应该与正在运行的Hadoop集群相匹配。感谢您的宝贵意见,我们将实施并回复我的发现。