Apache Spark 和 gRPC
Apache Spark and gRPC
我正在编写一个使用 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
),但不知何故它仍然不起作用。我该如何解决这个问题?
我认为问题是 spark 使用 netty 4.0.x 和 gRPC 4.1.0 .
这种事情的一般解决方案是重定位着色。查看 protobuf 依赖项类似问题的答案:https://groups.google.com/forum/#!topic/grpc-io/ABwMhW9bU34
我正在编写一个使用 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
),但不知何故它仍然不起作用。我该如何解决这个问题?
我认为问题是 spark 使用 netty 4.0.x 和 gRPC 4.1.0 .
这种事情的一般解决方案是重定位着色。查看 protobuf 依赖项类似问题的答案:https://groups.google.com/forum/#!topic/grpc-io/ABwMhW9bU34