将nifi接收器与Spark流集成在一起会导致sbt汇编失败

时间:2016-05-10 09:02:55

标签: apache-spark sbt spark-streaming sbt-assembly apache-nifi

我正在尝试使用nifi接收器创建Spark Streaming应用程序。根据教程,我将sbt dependancies添加到我的构建文件中,但现在sbt assembly失败并出现重复数据删除错误。

我的build.sbt文件是:

version := "0.0.1"

scalaVersion := "2.10.5"

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.6.1" % "provided"

libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.6.1" % "provided"

libraryDependencies += "org.apache.spark" % "spark-hive_2.10" % "1.6.1" % "provided"

libraryDependencies += "org.apache.nifi" % "nifi-spark-receiver" % "0.6.1"

libraryDependencies += "org.apache.nifi" % "nifi-site-to-site-client" % "0.6.1" 

我得到的错误是:

[error] (*:assembly) deduplicate: different file contents found in the following:
[error] org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7-tests.jar:META-INF/maven/org.apache.avro/avro-ipc/pom.properties
[error] org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7.jar:META-INF/maven/org.apache.avro/avro-ipc/pom.properties

有人知道如何解决这个问题吗?

谢谢, 马可

1 个答案:

答案 0 :(得分:1)

我不完全确定这是否是问题,但最近有人指出nifi-spark-receiver应该对Spark有“提供”依赖,否则可能会导致类路径出现问题。

在这个JIRA https://issues.apache.org/jira/browse/NIFI-1803中解决了这个问题,它将在NiFi的下一个0.x版本中发布(如果没有0.7,则会发布1.0)。

您可以尝试使用mvn install从0.x分支构建自己的NiFi副本,然后尝试使用当地Maven回购中可用的0.7.0-SNAPSHOT的nifi-spark-receiver。