我使用HDP版本2.6.3和2.2版本的Spark(不是HDP云),我试图从IntelliJ项目写入s3。我在我的一个数据节点上从shell写入s3存储桶没有问题,但是当我尝试在IntelliJ中的本地计算机上测试我的应用程序时,我收到错误(ERROR MetricsSystem:Sink类org.apache.spark.metrics将Hadoop-aws jar依赖项添加到我的pom文件后,无法实例化.sink.MetricsServlet。有谁知道你需要如何添加这种依赖关系有什么细微差别?如果我把依赖关系放在我的pom中的spark依赖项之上,那么我会因缺少spark类而得到不同的错误,所以看起来你把它放在什么顺序似乎很重要。
答案 0 :(得分:1)
我遇到了同样的问题,通过将Jackson的库从Hadoop的依赖项中排除来解决它。
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-aws</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion> <!-- declare the exclusion here -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion> <!-- declare the exclusion here -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>