【发布时间】:2015-11-24 11:09:56
【问题描述】:
我正在尝试将 spark 模块添加到我的 java gradle 项目中,但是,我使用的是 io.netty:netty-all:5.0.0.Alpha1 而 spark 1.5.2 使用的是 io.netty:netty-all :4.0.33.Final,不幸的是,由于 PooledByteBufAllocator 的构造函数,alpha 版本不向后兼容。
Exception in thread "main" java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.<init>(ZIIIIIII)V
at org.apache.spark.network.util.NettyUtils.createPooledByteBufAllocator(NettyUtils.java:122)
at org.apache.spark.network.client.TransportClientFactory.<init>(TransportClientFactory.java:105)
at org.apache.spark.network.TransportContext.createClientFactory(TransportContext.java:78)
at org.apache.spark.network.netty.NettyBlockTransferService.init(NettyBlockTransferService.scala:61)
at org.apache.spark.storage.BlockManager.initialize(BlockManager.scala:187)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:528)
我可以选择 fork spark 使用另一个构造函数,并希望 alpha 版本能够正常工作。另一种方法是强制传递依赖项来解析单个模块(spark 模块),但我不清楚如何实现这一点。
非常感谢任何建议。
【问题讨论】:
标签: gradle apache-spark netty