【发布时间】:2016-02-26 16:11:29
【问题描述】:
我正在编写一个使用 Apache Spark 的应用程序。为了与客户端通信,我想使用 gRPC。
在我的 Gradle 构建文件中,我使用
dependencies {
compile('org.apache.spark:spark-core_2.11:1.5.2')
compile 'org.apache.spark:spark-sql_2.11:1.5.2'
compile 'io.grpc:grpc-all:0.13.1'
...
}
省略 gRPC 时,一切正常。但是,当使用 gRPC 时,我可以创建构建,但不能执行它,因为包使用了各种版本的 netty。 Spark 似乎使用了netty-all,它包含与 gRPC 使用的相同的方法(但可能具有不同的签名)。
我尝试了阴影(使用com.github.johnrengelman.shadow),但不知何故它仍然不起作用。我该如何解决这个问题?
【问题讨论】:
-
您是否尝试过强制使用较低的 Netty 版本(Spark 所需的版本)?也许你会很幸运,gRPC 不会使用它编译的版本中的任何新方法......
-
我试过这个。不幸的是,看起来,一些方法改变了签名,所以它不起作用
标签: gradle apache-spark netty grpc