2015-04-06 103 views
0

我在Breeze库中添加了一些方法,我可以通过IDE查看这些方法。我试图将我自己构建的Breeze库添加到基于Apache Spark的项目中。但是,当我通过命令“sbt assembly”打包我的项目并在我的集群上运行它时,它会抛出一个错误“no such method xxx”,这意味着集群实际上并未运行我的Breeze库。那么有谁能告诉我如何让集群运行由我自己构建的Breeze库吗?如何将我自己构建的Breeze添加到Apache Spark?

回答

0

我有一个猜测,火花使用Breeze库本身的一些版本,并偏爱他们在你自定义装配.jars。您可以尝试使用自定义库建立火花。在你的本地maven仓库中安装你的库,在apache spark的pom.xml中指定它并构建你自己的spark版本。

+1

我已经建立微风并将其发布到.m2存储库并通过maven命令“mvn package”构建spark。之后,我用我刚创建的同名jar文件替换了我的集群上Spark的lib文件夹中的spark-assembly-1.3.0-hadoop1.0.4.jar。我也把这个jar放到我的项目的lib文件夹中,并通过命令“sbt assembly”打包我的项目。当我将项目提交给群集时,它会抛出如下错误: 执行程序sr476上阶段0.0(TID 449)中的任务126.2丢失:java.lang.NoClassDefFoundError(无法初始化类breeze.linalg.DenseVector $)[duplicate 200] – Mark 2015-04-10 13:56:47

+0

您正在获取'java.lang.NoClassDefFoundError'而不是'java.lang.ClassNotFoundException'。这意味着有这样的类,但它包含初始化中的一些错误(可能从您的自定义代码传播或由于某些不兼容)。不幸的是,我不能说更多关于此:( – ipoteka 2015-04-10 15:55:09

+0

谢谢。我刚刚发现我使用错误的scala版本2.11.x而不是2.10.4,这会导致错误。问题解决!非常感谢! – Mark 2015-04-11 06:23:32

相关问题