将nifi receiverw与Spark流集成会导致sbt程序集失败



我正在尝试使用nifi接收器创建一个Spark Streaming应用程序。根据教程,我将sbt依赖项添加到了构建文件中,但现在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.avroavro-ipcjarsavro-ipc-1.7.7-tests.jar:META-INF/maven/org.apache.avro/avro-ipc/pom.properties
[error] org.apache.avroavro-ipcjarsavro-ipc-1.7.7.jar:META-INF/maven/org.apache.avro/avro-ipc/pom.properties

有人知道怎么解决这个问题吗?

谢谢,Marco

我不完全确定这是否是问题所在,但最近有人指出,nifi spark接收器应该对spark有"提供的"依赖关系,否则可能会导致类路径出现问题。

本JIRA中对此进行了说明https://issues.apache.org/jira/browse/NIFI-1803它将在NiFi的下一个0.x版本中发布(如果没有0.7,则为1.0)

您可以尝试使用mvn-install从0.x分支构建自己的NiFi副本,然后尝试使用本地Maven repo中提供的NiFi spark接收器的0.7.0-SNAPSHOT。

最新更新